FUNCTION BinarySearch&
(channel%
, therecord
AS record
, search$
) Lowsearch& = 1 '* this is the lowest valid record number in a random access file
HighSearch&
= LOF(channel%
) / LEN(therecord
) '* this is the number of records based on UDT length middlesearch& = Lowsearch& + (HighSearch& - Lowsearch&) \ 2
GET #channel%
, middlesearch&
, therecord
Lowsearch& = middlesearch& + 1
HighSearch& = middlesearch& - 1
IF HighSearch&
< Lowsearch&
THEN '* indexes crossed means a match was not found
BinarySearch& = 0
BinarySearch& = middlesearch&