develooper Front page | perl.perl6.users | Postings from February 2019

Re: binary test and position?

Thread Previous | Thread Next
From:
ToddAndMargo via perl6-users
Date:
February 2, 2019 05:01
Subject:
Re: binary test and position?
Message ID:
3c3bb51b-383c-432e-96f7-f8a3e0d87707@zoho.com
On 2/1/19 8:26 PM, ToddAndMargo via perl6-users wrote:
> On 2/1/19 8:07 PM, ToddAndMargo via perl6-users wrote:
>> On 2/1/19 8:03 PM, ToddAndMargo via perl6-users wrote:
>>>  > On Fri, Feb 1, 2019 at 9:37 PM ToddAndMargo via perl6-users
>>>  > <perl6-users@perl.org> wrote:
>>>  >>
>>>  >> On 2/1/19 7:22 PM, ToddAndMargo via perl6-users wrote:
>>>  >>> Hi All,
>>>  >>>
>>>  >>> On a type Buf, what do I use to check for the
>>>  >>> position of a byte pattern?
>>>  >>>
>>>  >>>
>>>  >>> Many thanks,
>>>  >>> -T
>>>  >>
>>>  >>
>>>  >> Basically, what am I doing wrong here?
>>>  >>
>>>  >> $ p6 'my $handle=open("filever.exe", :bin, :ro); my Buf $b; $b=
>>>  >> $handle.read(5); say $b; say $b[2..4];; if ( $b[2..4] eq 
>>> 0x90,0x00,0x04
>>>  >> ) {say "y";} else {say "n"}; $handle.close;'
>>>  >> Buf[uint8]:0x<4D 5A 90 00 03>
>>>  >> (144 0 3)
>>>  >> y
>>>  >>
>>>  >>
>>>  >> I am testing to see if the pattern 0x90 0x00 0x04 exists,
>>>  >> which is does not.
>>>
>>>
>>> On 2/1/19 7:57 PM, Brad Gilbert wrote:
>>>> `eq` is string equality
>>>> `==` is numeric equality
>>>>
>>>> a Buf is neither.
>>>>
>>>> You want `eqv` (equivalent)
>>>>
>>>>      $b[2..4] eqv (0x90,0x00,0x04)
>>>>
>>>
>>> That was it.  Thank you!
>>>
>>> $ p6 'my $handle=open("filever.exe", :bin, :ro); my Buf $b; $b= 
>>> $handle.read(5); say $b; if ( $b[2..4] eqv (0x90,0x00,0x03) ) {say 
>>> "y";} else {say "n"}; $handle.close;'
>>> Buf[uint8]:0x<4D 5A 90 00 03>
>>> y
>>>
>>> $ p6 'my $handle=open("filever.exe", :bin, :ro); my Buf $b; $b= 
>>> $handle.read(5); say $b; if ( $b[2..4] eqv (0x90,0x00,0x04) ) {say 
>>> "y";} else {say "n"}; $handle.close;'
>>> Buf[uint8]:0x<4D 5A 90 00 03>
>>> n
>>
>>
>> How do I find the position of a pattern in a Buf?
> 
> Need `pos` for Buf

Actually I do believe it is the binary equivalent of `index` I
am looking for

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Computers are like air conditioners.
They malfunction when you open windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About