Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#8

Re: bestimmte einträge in listbox zählen

  Alt 9. Mär 2008, 16:50
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
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat