Thema: Delphi Volltextsuche

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#15

AW: Volltextsuche

  Alt 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.
$2B or not $2B

Geändert von himitsu ( 3. Okt 2011 um 18:09 Uhr)
  Mit Zitat antworten Zitat