Re: Start reading at a specific index?
> On Sat, Feb 2, 2019 at 9:02 PM ToddAndMargo via perl6-users > wrote: >> >> On 2/2/19 3:16 AM, Shlomi Fish wrote: >>> On Sat, 2 Feb 2019 01:08:39 -0800 >>> ToddAndMargo via perl6-users wrote: >>> Hi All, Is there a way to modify this to start reading at a specific index? And include how many bytes (300) to read as well? my $FileHandle = open( $FileName, :bin, :ro ); my Buf $BinaryFile = $FileHandle.read( 300 ); Many thanks, -T >>> >>> See https://docs.perl6.org/routine/seek . >>> >>> >> >> >> Thank you! >> >> >> I am not sure exactly what they mean by "$whence". >> >> method seek(IO::Handle:D: Int:D $offset, SeekType:D $whence --> True) >> >> SeekFromBeginning: The beginning of the file. >> >> my Bool $GoodRead = seek($FileHandle, $offset, SeekFromBeginning ); >> my Bool $GoodRead = seek.$FileHandle( $offset, SeekFromBeginning ); >> >> Or do I need to assign something to a variable called "$whence"? >> >> Many thanks, >> -T >> On 2/2/19 8:05 PM, Brad Gilbert wrote: `$whence` means “whence” adverb 1. from what place or source. So it should be one of the values of the `SeekType` enum say SeekType.enums.keys # (SeekFromCurrent SeekFromBeginning SeekFromEnd) - `SeekFromCurrent` means it is relative to where it is currently (go forward/backward) $fh.read(1); $fh.seek( -1, SeekFromCurrent); $fh.read(1); # same as previous `.read` # pretend to have read 5 bytes $fh.seek( 5, SeekFromCurrent ); - `SeekFromBeginning` means absolute position. # restart at beginning, and then skip forward 5 bytes $fh.seek( 5, SeekFromBeginning ); - `SeekFromEnd` means absolute position, except starting at the end of the file $fh.seek( -1, SeekFromEnd ); $fh.read(1); # read last byte Hi Brad. I understand now. Thank you! -T
Re: Start reading at a specific index?
`$whence` means “whence” adverb 1. from what place or source. So it should be one of the values of the `SeekType` enum say SeekType.enums.keys # (SeekFromCurrent SeekFromBeginning SeekFromEnd) - `SeekFromCurrent` means it is relative to where it is currently (go forward/backward) $fh.read(1); $fh.seek( -1, SeekFromCurrent); $fh.read(1); # same as previous `.read` # pretend to have read 5 bytes $fh.seek( 5, SeekFromCurrent ); - `SeekFromBeginning` means absolute position. # restart at beginning, and then skip forward 5 bytes $fh.seek( 5, SeekFromBeginning ); - `SeekFromEnd` means absolute position, except starting at the end of the file $fh.seek( -1, SeekFromEnd ); $fh.read(1); # read last byte On Sat, Feb 2, 2019 at 9:02 PM ToddAndMargo via perl6-users wrote: > > On 2/2/19 3:16 AM, Shlomi Fish wrote: > > On Sat, 2 Feb 2019 01:08:39 -0800 > > ToddAndMargo via perl6-users wrote: > > > >> Hi All, > >> > >> Is there a way to modify this to start reading at > >> a specific index? And include how many bytes (300) > >> to read as well? > >> > >>my $FileHandle = open( $FileName, :bin, :ro ); > >>my Buf $BinaryFile = $FileHandle.read( 300 ); > >> > >> Many thanks, > >> -T > > > > See https://docs.perl6.org/routine/seek . > > > > > > > Thank you! > > > I am not sure exactly what they mean by "$whence". > > method seek(IO::Handle:D: Int:D $offset, SeekType:D $whence --> True) > > SeekFromBeginning: The beginning of the file. > > my Bool $GoodRead = seek($FileHandle, $offset, SeekFromBeginning ); > my Bool $GoodRead = seek.$FileHandle( $offset, SeekFromBeginning ); > > Or do I need to assign something to a variable called "$whence"? > > Many thanks, > -T > > > > -- > ~~ > Computers are like air conditioners. > They malfunction when you open windows > ~~
Re: Start reading at a specific index?
On 2/2/19 3:16 AM, Shlomi Fish wrote: On Sat, 2 Feb 2019 01:08:39 -0800 ToddAndMargo via perl6-users wrote: Hi All, Is there a way to modify this to start reading at a specific index? And include how many bytes (300) to read as well? my $FileHandle = open( $FileName, :bin, :ro ); my Buf $BinaryFile = $FileHandle.read( 300 ); Many thanks, -T See https://docs.perl6.org/routine/seek . Thank you! I am not sure exactly what they mean by "$whence". method seek(IO::Handle:D: Int:D $offset, SeekType:D $whence --> True) SeekFromBeginning: The beginning of the file. my Bool $GoodRead = seek($FileHandle, $offset, SeekFromBeginning ); my Bool $GoodRead = seek.$FileHandle( $offset, SeekFromBeginning ); Or do I need to assign something to a variable called "$whence"? Many thanks, -T -- ~~ Computers are like air conditioners. They malfunction when you open windows ~~
Re: Start reading at a specific index?
On Sat, 2 Feb 2019 01:08:39 -0800 ToddAndMargo via perl6-users wrote: > Hi All, > > Is there a way to modify this to start reading at > a specific index? And include how many bytes (300) > to read as well? > > my $FileHandle = open( $FileName, :bin, :ro ); > my Buf $BinaryFile = $FileHandle.read( 300 ); > > Many thanks, > -T See https://docs.perl6.org/routine/seek . -- - Shlomi Fish http://www.shlomifish.org/ http://is.gd/i5eMQd - Emma Watson’s Interview for a Software Dev Job Q2: Busy people are unproductive. We are very productive and so we’re never busy. — http://www.shlomifish.org/humour/Star-Trek/We-the-Living-Dead/ Please reply to list if it's a mailing list post - http://shlom.in/reply .