I want to use bsearch to replace finditem function,blow is the origin way:
Fn Find_string_in_array arr str=
(
count=0
for i=1 to arr.count do
(
if findstring arr[i] str!=undefined then
(
count+=1
)
)
count
)
key_string="C:\Users\Administrator\Personal\WeChat Files"
need_to_find=#(
"C:\Users\Administrator\Personal",
"C:\Users\Administrator\Personal\3ds Max 2020",
"C:\Users\Administrator\Personal\3ds Max 2021",
"C:\Users\Administrator\Personal\3dsMax",
"C:\Users\Administrator\Personal\Apowersoft",
"C:\Users\Administrator\Personal\Autodesk Application Manager",
"C:\Users\Administrator\Personal\WeChat Files",
"C:\Users\Administrator\Personal\WeChat Files\test.max",
"C:\Users\Administrator\Personal\Windows Live"
)
print (Find_string_in_array need_to_find key_string)
–results
–2 matches
/*
“C:\Users\Administrator\Personal\WeChat Files”,
“C:\Users\Administrator\Personal\WeChat Files\test.max”,
*/
It will too slow for a huge array,I am trying to use bsearch to do the same job,but I don’t know how to use it.
Fn bsearch_fn=
(
--how to compare the string?
)
Fn Find_string_use_bsearch arr str=
(
count=0
compare=bsearch str need_to_find Comp_fn
if compare!=undefined then count+=1
count
)
print (Find_string_use_bsearch need_to_find key_string)
Any help would be appericate!