Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
Delphi 12 Athens
|
AW: Volltextsuche
3. Okt 2011, 18:04
Um den Anfang auch noch wegzuoptimieren...
Delphi-Quellcode:
procedure TWoerterbuch.Filter(const Suchwort: string; FilterResult: TStrings);
var
i: Integer;
begin
Assert(Assigned(FilterResult));
FilterResult.BeginUpdate;
try
FilterResult.Clear;
if Suchwort <> '' then begin
FWoerter.Find(SearchWord, i);
while (i < FWoerter.Count) and AnsiStartsText(Suchwort, FWoerter[i]) do
FilterResult.Add(FWoerter[i]);
end else
FilterResult.AddStrings(FWoerter);
finally
FilterResult.EndUpdate;
end;
end;
(ich hoffe es funktioniert)
Delphi-Quellcode:
function TDictionary.Filter(const SearchWord: string; FilterResult: TStrings; OnlyAtTheBeginningOfWords: Boolean): Boolean;
var
i: Integer;
begin
Assert(Assigned(FilterResult));
FilterResult.BeginUpdate;
try
FilterResult.Clear;
if SearchWord <> '' then begin
FListOfWords.Find(SearchWord, i);
while (i < FListOfWords.Count)
and ((not OnlyAtTheBeginningOfWords and AnsiContainsText(SearchWord, FListOfWords[i]))
or (OnlyAtTheBeginningOfWords and AnsiStartsText(SearchWord, FListOfWords[i]))) do
FilterResult.Add(FListOfWords[i]);
end else
FilterResult.AddStrings(FListOfWords);
finally
Result := FilterResult.Count <> 0;
FilterResult.EndUpdate;
end;
end;
Und wenn man nun noch Names und Values verwendet, bekommt man auch noch die Übersetzung mit rein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu ( 3. Okt 2011 um 18:09 Uhr)
|