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!