Hallo,
meinst du du hast folgende Liste:
Zitat:
Hallo
Welt
Gehen
Welt
Welt
Gehen
und willst dann anzeigen:
Hallo: 1 Welt: 3 Gehen: 2
?
Dann würde ich jeden Eintrag durchgehen, und in einer zweiten Liste überprüfen ob dies bereits existiert.
Delphi-Quellcode:
var
sl : TStringList; // Eine Liste von Strings
cnts : array of Integer; // Eine Liste mit der Anzahl einzelner Strings
begin
sl := TStringList.Create; // Die Liste erstellen
SetLength(cnts, 0); // Die Anzahl der Anzahl auf 0 setzen
try
for i := 0 to <ListBox>.Count - 1 do // Jeden einzelnen Eintrag durchgehen
begin
if sl.IndexOf(<ListBox>.Items[i]) >= 0 then // Wenn der Eintrag bereits in der Liste der Strings existiert ...
Inc(cnts[sl.IndexOf(<ListBox>.Items[i])]) // ... die Anzahl der Einträge um eins erhöhen ...
else // ... ansonsten ...
begin
SetLength(cnts, Length(cnts) + 1); // ... die Anzahl der Anzahlen um eins erhöhen ...
cnts[High(cnts)] := 1; // ... den Wert auf 1 setzten ...
sl.Add(<ListBox>.Items[i]); // ... und den Eintrag der Stringliste hinzufügen
end;
end;
finally
sl.Free;
end;
end;
Ich geben keine Gewähr auf den Code, das dieser funktioniert oder besonders optimiert ist!
Dieser Code berechnet dir wie viele verschiedene Wörter drin vorkommen, und wie häufig diese vorkommen.
Wenn du dazu Fragen hast: Schieß los (blos nicht auf mich
)
MfG
xZise