[Overview][Constants][Types][Classes][Procedures and functions][Variables] |
Search for item with given key.
Source position: objects.pp line 439
function TSortedCollection.Search( |
Key: Pointer; |
var Index: Sw_Integer |
):Boolean; virtual; |
Searchlooks for the item with key Keyand returns the position of the item (if present) in the collection in Index.
Instead of a linear search as TCollectiondoes, TSortedCollectionuses a binary search based on the keys of the objects. It uses the Comparefunction to implement this search.
If the item is found, Searchreturns True, otherwise Falseis returned.
None.
|
Find the position of a certain item. |
Program ex36; { Program to demonstrate the TSortedCollection.Insert method } Uses Objects,MyObject,MySortC; { For TMyObject,TMySortedCollection definition and registration } Var C : PSortedCollection; M : PMyObject; I : Longint; Procedure PrintField (Dummy: Pointer;P : PMyObject); begin Writeln ('Field : ',P^.GetField); end; begin Randomize; C:=New(PMySortedCollection,Init(120,10)); C^.Duplicates:=True; Writeln ('Inserting 100 records at random places.'); For I:=1 to 100 do begin M:=New(PMyObject,Init); M^.SetField(Random(100)); C^.Insert(M) end; M:=New(PMyObject,Init); Repeat; Write ('Value to search for (-1 stops) :'); read (I); If I<>-1 then begin M^.SetField(i); If Not C^.Search (M,I) then Writeln ('No such value found') else begin Write ('Value ',PMyObject(C^.At(I))^.GetField); Writeln (' present at position ',I); end; end; Until I=-1; Dispose(M,Done); Dispose(C,Done); end.