Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How can I create a search file for text?
#1
How can I create a quick search (e.g. binary search) of a text file using QBPE? My file is several thousand (sorted) items of very varied length. 
Just an algorithm will do, I'm happy to try to  code the function myself (although I may need a few prompts along the way). Big Grin
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, Western Australia.) Big Grin
Please visit my Website at: http://oldendayskids.blogspot.com/
Reply
#2
Binary search of an array in alpha order call it arr$()

Mark the first item low = 1 mark the last item high = number of items

recalcMiddle:

if low > high then the item is not found in arr$() and you are done with unsuccessful search.

then middle = int(low + high)/2

now if the arr$(middle) > search item then move high to middle - 1 goto recalcMiddle

now if arr$(middle) < search item then low = middle + 1 goto recalcMiddle

now if arr$(middle) = search item then you've found it and are done!

You play the game, guess my number from 1 to 100, in just the same way!
  724  855  599  923  575  468  400  206  147  564  878  823  652  556 bxor cross forever
Reply
#3
Great! Thanks bplus, I knew you'd come through!
That's clear enough even for me.
Now, back to work (or play) fo me.
Of all the places on Earth, and all the planets in the Universe, I'd rather live here (Perth, Western Australia.) Big Grin
Please visit my Website at: http://oldendayskids.blogspot.com/
Reply
#4
Good luck!
  724  855  599  923  575  468  400  206  147  564  878  823  652  556 bxor cross forever
Reply
#5
Another very simple way is to just read the whole file into one string, and then use INSTR with your search term.
Reply
#6
(01-26-2024, 12:10 AM)SMcNeill Wrote: Another very simple way is to just read the whole file into one string, and then use INSTR with your search term.

Oh yeah that's nice too!

here I made a little AI Game to watch for Guess Number:
Code: (Select All)
'2024-01-25 update
DefInt A-Z
While 1
    Hi = 101: Lo = 0: number = Int(Rnd * 100) + 1
    ' number = 1  'test limits
    ' number = 100
    Do
        guess = Int((Hi + Lo) / 2)
        Print "AI guesses the number ("; _Trim$(Str$(number)); ") as"; guess
        If guess < number Then Print "low": Lo = guess + 1
        If guess > number Then Print "high": Hi = guess - 1
    Loop Until guess = number
    Input "Yeah, press enter for another..."; w$
    Cls
Wend
  724  855  599  923  575  468  400  206  147  564  878  823  652  556 bxor cross forever
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Photo from png tile, create symmetrical screen image hsiangch_ong 11 931 08-23-2025, 01:23 AM
Last Post: bplus
  Trying to create a simple menu CMR 8 1,189 06-18-2025, 06:59 PM
Last Post: CookieOscar
  IDE search option eoredson 1 531 05-29-2024, 10:15 AM
Last Post: hsiangch_ong
  Create a new character? PhilOfPerth 12 2,149 01-25-2023, 08:07 PM
Last Post: bplus
Question Formatting Text File Output NasaCow 7 1,670 12-08-2022, 11:50 PM
Last Post: NasaCow

Forum Jump:


Users browsing this thread: 1 Guest(s)