[Overview][Constants][Types][Classes][Procedures and functions][Variables][Index] | Reference for unit 'Objects' (#rtl)

# TSortedCollection.Search

Search for item with given key.

## Declaration

Source position: objects.pp line 438

`function TSortedCollection.Search(`
`Key: Pointer;`
`var Index: Sw_Integer`
`):Boolean; virtual;`

## Description

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

TCollection.IndexOf |  | Find the position of a certain item.

## Example

    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.

Documentation generated on: Feb 26 2014