Added findStringInstance function to strings package
This commit is contained in:
@@ -2,26 +2,30 @@
|
|||||||
|
|
||||||
This library adds extra string manipulation functions to ground. It is entirely coded in ground.
|
This library adds extra string manipulation functions to ground. It is entirely coded in ground.
|
||||||
|
|
||||||
Please note that you cannot copy a single function from the package, as some functions rely on other functions in the library.
|
Please note that you cannot copy a single function from the package, as some functions rely on other functions in the library (reliance on other functions is detailed below).
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
### fun -char !findChar -string &str -char &char
|
### fun -char !findChar -string &str -char &char
|
||||||
|
|
||||||
Finds the index of $char in $string
|
Finds the index of $char in $string (no prerequisites).
|
||||||
|
|
||||||
### fun -char !findCharInstance -string &str -char &char -int &instance
|
### fun -char !findCharInstance -string &str -char &char -int &instance
|
||||||
|
|
||||||
Finds the index of the `$instance`th instance of $char in $str
|
Finds the index of the `$instance`th instance of $char in $str (no prerequisites).
|
||||||
|
|
||||||
### fun -string !mid -string &str -int &idx -int &len
|
### fun -string !mid -string &str -int &idx -int &len
|
||||||
|
|
||||||
Finds $len characters of $str, starting at $idx.
|
Finds $len characters of $str, starting at $idx (no prerequisites).
|
||||||
|
|
||||||
### fun -string !inBrackets -string &str -char &left -char &right -int &instance
|
### fun -string !inBrackets -string &str -char &left -char &right -int &instance
|
||||||
|
|
||||||
Finds the content of the `$instance`th instance of brackets, with the left bracket being the $left char and the right bracket of $right char.
|
Finds the content of the `$instance`th instance of brackets, with the left bracket being the $left char and the right bracket of $right char (requires !findCharInstance).
|
||||||
|
|
||||||
### fun -string !matchStart -string &str -string &instr
|
### fun -string !matchStart -string &str -string &instr
|
||||||
|
|
||||||
Checks if the start of $str matches $instr.
|
Checks if the start of $str matches $instr (requires !mid).
|
||||||
|
|
||||||
|
### fun -int !findStringInstance -string &str -string &instr -int &instance
|
||||||
|
|
||||||
|
The same as !findCharInstance, but allows a string to be parsed to be searched for (no prerequisites).
|
@@ -82,4 +82,41 @@ fun -string !matchStart -string &str -string &instr
|
|||||||
call !mid &store
|
call !mid &store
|
||||||
equal $store $instr &store
|
equal $store $instr &store
|
||||||
return $store
|
return $store
|
||||||
|
endfun
|
||||||
|
|
||||||
|
fun -int !findStringInstance -string &str -string &instr -int &instance
|
||||||
|
getstrsize $instr &len
|
||||||
|
subtract $len 1 &len
|
||||||
|
set &idx $len
|
||||||
|
|
||||||
|
@loop
|
||||||
|
set &tempstr ""
|
||||||
|
subtract $idx $len &tempidx
|
||||||
|
subtract $tempidx 1 &tempidx
|
||||||
|
@subloop
|
||||||
|
equal $tempidx $idx &store
|
||||||
|
if $store %continue
|
||||||
|
add $tempidx 1 &tempidx
|
||||||
|
|
||||||
|
getstrcharat $str $tempidx &store
|
||||||
|
add $tempstr $store &tempstr
|
||||||
|
jump %subloop
|
||||||
|
|
||||||
|
|
||||||
|
@continue
|
||||||
|
equal $tempstr $instr &store
|
||||||
|
if $store %decrement
|
||||||
|
add $idx 1 &idx
|
||||||
|
jump %loop
|
||||||
|
|
||||||
|
@decrement
|
||||||
|
equal $instance 0 &store
|
||||||
|
if $store %end
|
||||||
|
subtract $instance 1 &instance
|
||||||
|
add $idx 1 &idx
|
||||||
|
jump %loop
|
||||||
|
|
||||||
|
@end
|
||||||
|
subtract $idx $len &idx
|
||||||
|
return $idx
|
||||||
endfun
|
endfun
|
Reference in New Issue
Block a user