TSortedCollection.Search function
Search for item with given key.
Declaration
function Search(Key: Pointer; var Index: Sw_Integer): Boolean; virtualDescription
Search looks for the item with key
Key and returns the position
of the item (if present) in the collection in
Index.
Instead of a linear search as TCollection does, TSortedCollection
uses a binary search based on the keys of the objects. It uses the
Compare function to implement this
search.
If the item is found, Search returns True, otherwise False
is returned.
Errors
None.
See also
Example: ex36
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.An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
