Einzelnen Beitrag anzeigen

Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: [Konzeptfrage] ist Listbox schneller zu durchsuchen?

  Alt 25. Sep 2008, 04:10
Zitat von juergen:
Delphi-Quellcode:
[...]
      NextPos := pos(Suche.Text, Copy(ItemText, Suche.StrPos +
        length(Suche.Text), length(ItemText) - Suche.StrPos));
      if NextPos > 0 then
        Suche.StrPos := Suche.StrPos + length(Suche.Text) + NextPos - 1
      else
        Suche.StrPos := 0;
[...]
Da hast du aber zuerst einmal noch einen Fehler drin. Wenn der Suchtext "otto" ist und der durchsuchte Text "ottotto" enthält, so wird nur das erste Otto gefunden. Und um die Geschwindigkeit zu erhöhen könntest du den Copy-Befehl rausschmeißen und statt Delphi-Referenz durchsuchenPos mit Delphi-Referenz durchsuchenPosEx arbeiten:

Delphi-Quellcode:
[...]
      PosEx(Suche.Text, ItemText, Succ(Suche.StrPos));
      if NextPos > 0 then
        Suche.StrPos := Pred(NextPos) // Warum hier eigentlich einen weniger?
      else
        Suche.StrPos := 0;
[...]
Edit: Arrg, PosEx hatte jfheins ja schon genannt. Muss die Uhrzeit machen
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat