> On Sat, Feb 2, 2019 at 9:02 PM ToddAndMargo via perl6-users
> <[email protected]> wrote:
>>
>> On 2/2/19 3:16 AM, Shlomi Fish wrote:
>>> On Sat, 2 Feb 2019 01:08:39 -0800
>>> ToddAndMargo via perl6-users <[email protected]> wrote:
>>>
>>>> Hi All,
>>>>
>>>> Is there a way to modify this to start reading at
>>>> a specific index? And include how many bytes (3000000)
>>>> to read as well?
>>>>
>>>> my $FileHandle = open( $FileName, :bin, :ro );
>>>> my Buf $BinaryFile = $FileHandle.read( 3000000 );
>>>>
>>>> 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