Einzelnen Beitrag anzeigen

bigkahoona

Registriert seit: 14. Apr 2008
Ort: Wiesbaden
8 Beiträge
 
#1

Suchergebnisse nach Teilstring in Memo ausgeben lassen

  Alt 15. Apr 2008, 15:16
Hallo allerseits,

ich habe eine kleine Denkblockade. Ich versuche folgendes: Ich möchte eine Liste von Domainnamen die ich aus einer Textdatei in ein Memo eingelesen habe gegen eine Liste von Teilstrings die ich aus einer anderen Datei eingelesen habe abgleichen und bei Übereinstimmung das Ergebnis in einem dritten Memo ausgeben lassen.
Und zwar so:

http://gavajda.de/schaumermal.jpg

Das erste Ergebnis wird noch reingeschrieben, das Feld danach aber nicht mehr aktualisiert, obwohl die Suche 113 mal fündig wurde, wie die Ausgabe des Zählers (rot umrahmt unten rechts) zeigt. Dieses Label wird aber auch erst nach dem vollständigen Durchlaufen der Schleifen aktualisiert.
Meine Frage deshalb: muss ich die Schleife in einen eigenen Thread auslagern und das Aktualisieren des Fensters vom Hauptprozess erledigen lassen oder wie mache ich das? Ich denke, um den Freeze während dem Durchlaufen der Schleifen zu vermeiden werde ich um einen Thread nicht herumkommen, aber ich wollte doch mal wissen ob das auch der Grund für die nicht aktualisierte Ausgabe der Ergebnisse ist.
Hier der von mir verwendete Kot:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  wlloopcount: Integer;
  dlloopcount: Integer;
begin
  Memo2.Clear;
  resultcount := 0;
  for wlloopcount := 0 to wlcounter -1 do {outer loop counting up the lines in word list}
    begin
     for dlloopcount := 0 to dlcounter - 1 do {inner loop checking words against domains}
        begin
            stringpos := pos((Memo3.Lines [wlloopcount]), (Memo1.Lines [dlloopcount]));
              if stringpos > 0 then
                begin
                  Memo2.Lines [resultcount] := Memo1.Lines [dlloopcount]; {filling results Memo}
                  resultcount := resultcount + 1;
                  Label6.Caption := IntToStr(resultcount);
                  stringpos := 0;
                end;
        end;
    end;
end;
Bitte gnädig sein, bin n00b. Bin für jeden Tipp dankbar!
  Mit Zitat antworten Zitat