Difference between revisions of "$bfind"
m (moved from commands -> text and number identifiers) |
|||
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
<nowiki>$bfind(&binvar,N,M)</nowiki> | <nowiki>$bfind(&binvar,N,M)</nowiki> | ||
Returns the position of the first matching character. | Returns the position of the first matching character. | ||
− | ''N'' is the starting position for the | + | |
+ | ''N'' is the starting position for the search. | ||
''M'' is the matchtext, it can contain plain text or [[$asc|ascii]] values. The search is case-insensitive. | ''M'' is the matchtext, it can contain plain text or [[$asc|ascii]] values. The search is case-insensitive. | ||
Line 28: | Line 29: | ||
[[Category:Binary Files]] | [[Category:Binary Files]] | ||
− | [[Category: | + | [[Category:Text and Number Identifiers]] |
Latest revision as of 12:41, 11 April 2007
The $bfind identifier is used to find a matching value in a binary file.
$bfind(&binvar,N,M)
Returns the position of the first matching character.
N is the starting position for the search.
M is the matchtext, it can contain plain text or ascii values. The search is case-insensitive.
use $bfind().text to force a plain text search, in case your text is a number.
Examples
bset -t &test 1 ABC 97 abcd echo -a $bvar(&test,1,$bvar(&test,0)) returns 65 66 67 32 57 55 32 97 98 99 1000 echo -a $bfind(&test,1,a)
We searched for an "a", but as the match is case-insensitive, the A matches too. The last echo will echo 1 as an "a" is at position 1.
bset -t &test 1 ABC 97 abcd echo -a $bfind(&test,1,97) returns 8 echo -a $bfind(&test,1,abcd) returns 8 echo -a $bfind(&test,4,a) returns 8
In the first echo, we only search for character 97, wich is an "a", but this time "A" won't match. In the second echo, we search for "abcd", wich is only found at the end of the var. In the third echo, we search for "a", but we start searching at position 4, so the "A" won't be found.
bset -t &test 1 ABC 97 abcd echo -a $bfind(&test,1,97).text returns 5
We now searched for the text "97" and not character 97.