Thema: Delphi Suche effizienter machen

Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#3

Re: Suche effektiver machen

  Alt 19. Sep 2008, 13:35
Hallo,

mal so ein bisserl schmutzig von mir dahingeschrieben:

if (text<>'') OR (text2<>'') OR (text3<>'') then Mach Dir dafür 'nen boolschen Schalter, dann musst Du nur einmal abfragen

b := (text<>'') OR (text2<>'') OR (text3<>''); Das kannst Du schon vor Deiner For-Schleife machen, ist b = false, kannst Du Dir die For-Schleife direkt sparen.

Text... werden bei jeder Abfrage mit Lowercase behandelt, mache das einmal vor der Schleife.
Delphi-Quellcode:
if Pos( LowerCase(text3), LowerCase( FSelect.Strings[ii] ) ) > 0 then
begin
  i:=Pos( LowerCase(text3), LowerCase( FSelect.Strings[ii] ) );
Prüfe bitte, ob Du vorab auch FSelect.Strings[ii] in Lowercase wandeln kannst, dann mach das vorab in einer separaten Schleife.

Die Position wird hier zweimal ermittelt, eventuell machst Du das besser so:
Delphi-Quellcode:
i := Pos( LowerCase(text3), LowerCase( FSelect.Strings[ii] ) );
if i > 0 then
begin
@taaktaak, IndexOf ist hier nicht geeignet, da nicht nach Strings in der Liste gesucht wird, sondern nach Teilstrings in den einzelnen Listeneinträgen, das kann IndexOf meines Wissens nicht.

Stephan

PS: taaktaak war schneller als ich
  Mit Zitat antworten Zitat