program btest; uses crt, lists, dos, debug; var tree:PBtree; tree2:PBtree; u:uPtr; dirInfo : SearchRec; s:string; treeInfo: BTreeSearchRec; i:integer; begin {new(tree, init('', 512, BT_PCHAR));} writeln('memAvail: ', memAvail); new(tree, init('', 512, BT_PCHAR)); (*findfirst('*.*', anyFile, dirInfo); while dosError = 0 do begin u.offset := dirInfo.size; tree^.Insert(@dirInfo.name, u); findNext(dirInfo); end; *) findfirst('*.*', anyFile, dirInfo); while dosError = 0 do begin u.offset := dirInfo.size; dirInfo.name[length(dirInfo.name)+1]:=#0; tree^.Insert(@dirInfo.name[1], u); findNext(dirInfo); end; findfirst('e:\program files\tmt.5\htmlhelp\*.htm', anyFile, dirInfo); while dosError = 0 do begin u.offset := dirInfo.size; dirInfo.name[length(dirInfo.name)+1]:=#0; tree^.Insert(@dirInfo.name[1], u); { tree^.Insert(@dirInfo.name, u);} findNext(dirInfo); end; tree^.printWholeTree; {--- findfirst('c:\mp3\*.*', anyFile, dirInfo); while dosError = 0 do begin if not tree^.Find(@dirInfo.name, u) then writeln('Not found: ', dirInfo.name); findNext(dirInfo); end; findfirst('c:\tmt.5\htmlhelp\*.htm', anyFile, dirInfo); while dosError = 0 do begin if not tree^.Find(@dirInfo.name, u) then writeln('Not found: ', dirInfo.name); findNext(dirInfo); end; ---} (* findfirst('*.*', anyFile, dirInfo); while dosError = 0 do begin u.offset := dirInfo.size; dirInfo.name[length(dirInfo.name)+1] := #0; {tree^.Insert(@dirInfo.name[1], u);} tree^.Insert(@dirInfo.name, u); {tree^.printWholeTree;} findNext(dirInfo); end; tree^.printWholeTree; *) (* if (tree^.getFirstKey(treeInfo)) then repeat tree^.delete(treeInfo.key, treeInfo.value); {tree^.printWholeTree;} until not tree^.findNext(treeInfo); *) findfirst('e:\program files\tmt.5\htmlhelp\*.htm', anyFile, dirInfo); while dosError = 0 do begin dirInfo.name[length(dirInfo.name)+1] := #0; tree^.Delete(@dirInfo.name[1], u); {tree^.Delete(@dirInfo.name, u);} { tree^.printWholeTree; } findNext(dirInfo); end; tree^.printWholeTree; findfirst('*.*', anyFile, dirInfo); while dosError = 0 do begin dirInfo.name[length(dirInfo.name)+1] := #0; tree^.Delete(@dirInfo.name[1], u); { tree^.Delete(@dirInfo.name, u);} findNext(dirInfo); end; tree^.printWholeTree; (* new(tree2, init('', 512, BT_STRING)); if (tree^.getLastKey(treeInfo)) then repeat tree2^.Insert(treeInfo.key, treeInfo.value); {tree2^.printWholeTree;} until not tree^.findPrev(treeInfo); {tree2^.printWholeTree;} dispose(tree2, done); *) (* findfirst('c:\mp3\*.*', anyFile, dirInfo); while dosError = 0 do begin u.offset := dirInfo.size; dirInfo.name[length(dirInfo.name)+1] := #0; {tree^.Insert(@dirInfo.name[1], u);} tree^.Delete(@dirInfo.name, u); tree^.printWholeTree; findNext(dirInfo); end; *) (* s := '(07)Lee-Cabrera_Feat._Alex_Cartana-Shake_It_(Move_A_Little_Closer).mp3'; tree^.delete(@s, u); tree^.printWholeTree; s := 'Laura Branigan - Self Control 2004 (Mindworkers Remix).mp3'; tree^.delete(@s, u); tree^.printWholeTree; s := 'Lazard - 4 O''Clock in the Morning (Radio Edit).mp3'; tree^.delete(@s, u); tree^.printWholeTree; s := 'Master Blaster - One Night In Bangkok.mp3'; tree^.delete(@s, u); tree^.printWholeTree; *) {if (tree^.findFirst(@s, treeInfo)) then} (* if (tree^.GetFirstKey(treeInfo)) then repeat writeln(string(treeInfo.key^), ' is ', treeInfo.value.offset, ' bytes'); until not tree^.findNext(treeInfo); if (treeInfo.key <> NIL) then writeln('key <> nil!'); *) dispose(tree, done); writeln('memAvail: ', memAvail); end.