Einzelnen Beitrag anzeigen

Benutzerbild von rawsoul
rawsoul

Registriert seit: 29. Okt 2006
Ort: Düsseldorf
249 Beiträge
 
Delphi 2005 Personal
 
#1

Suche in ListBox beschleunigen

  Alt 6. Jan 2007, 04:42
einen guten morgen meine lieben delphianer

mein ziel:
aus vorgegebener wordlist (liste mit ganz vielen wörtern halt ) werden einige herausgezogen, und deren buchstaben verdreht. <- das ganze ist vorgegeben... die verdrehten worte sollen nun wieder "zurückverdreht" werden, bis sie einem der wörter in der wordlist gleichen.

soweit die aufgabe. ich habe nun eine funktion geschrieben, die die wörter per zufallsprinzip verdreht und möchte diese nun mit der wordlist, die in einer tlistbox eingeladen sind vergleichen bzw. suchen. falls dieses wort nicht gefunden wurde, soll das vorgegebene wort nochmals verdreht werden, so lange, bis dieses wort dem original gleicht.

1. verdrehe das vorgegebene wort
2. vergleiche es mit allen einträgen der listbox (for .. to .. do)
3. falls es einem der originalwörter gleicht, gebe es in einem memo aus
4. falls es diesem nicht gleicht, beginne bei 1

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wort,verdreht:string;
  equal:byte;
  listindex,listlaenge:integer;
begin
  equal:=0;
  listlaenge:=listbox1.count;
  wort:=memo1.lines[0];
  repeat
    listindex:=0;
    begin
      verdreht:=wortverdrehen(wort);
      repeat
        begin
          repeat
            begin
              if ListBox1.Items[listindex]=verdreht then equal:=1;
              listindex:=listindex+1
            end;
          until (equal=1) or (listindex=listlaenge-1);
        end until (equal=1) or (listindex=listlaenge-1);
    end until (equal=1) or (listindex=listlaenge-1);
    beep;
  memo2.Lines.Add(memo1.lines[0]);
end;
ich hoffe, man kann mich soweit halbwegs nachvollziehen

jetzt kommen folgende probleme hinzu: in der wordlist sind zirka 1300 wörter und ich habe zum "knacken" von 8 worten gerade mal 30 sekunden zeit. leider brauche ich _mit glück_ schon 30 sekunden für ein wort.

wie kann ich das ganze beschleunigen? oder gibt es eine bessere oder schnellere möglichkeit? (was schöneres möchte ich nicht, man sieht den quelltext später eh nicht)

viele liebe grüße und nachträglich ein frohes neues jahr

[edit=RawSoul]Quelltext upgedatet... Nochmal komplett von vorn angefangen [/edit]
[edit=RawSoul]Oh Gott, entschuldigt meine Sauklaue *wegduck*... Sowohl Quelltext als auch komplette Sätze [/edit]
[edit=RawSoul]Noch ein Quelltextupdate...[/edit]
Frank Dumont
  Mit Zitat antworten Zitat