Zitat von
knolli:
ähm... :?:
was wird damit if i mod 20 = 0 then
bezweckt? :gruebel:
Das wenn i durch 20 ganzzahling teilbar ist ein application.processMessages ausgeführt wird.
Wenn Du lange Schleifen abarbeitest, ich es sinnvoll an und ab ein application.processMessages
aufzurufen. Ansonsten erscheint die Applikation so als ob sie eingeschlafen sei.
Dann bin ich nochmal in mich gegangen und habe
einen kleine Testfall für das zählen der Worte(häufigkeit) erstellt.
Du musst ihn nur noch Deinen Begebenheiten anpassen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Byte;
zaehler: Byte;
s:String;
begin
ListBox1.Items.BeginUpdate;
ListBox1.Sorted:=true;
while ListBox1.Count > 0 do
begin
zaehler :=0;
s:= ListBox1.Items[ListBox1.Items.Count-1];
for i:=ListBox1.Items.Count-1 downto 0 do
if ListBox1.Items[i] = s then
begin
application.processMessages;
inc(zaehler);
ListBox1.Items.Delete(i);
end;
Memo1.lines.add(format('%d %s',[zaehler,s]));
end;
ListBox1.Items.EndUpdate;
end;
Grüße
Klaus