Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#39

Re: TStringlist, THashedStringlist gibts nichts schnelleres?

  Alt 11. Apr 2010, 17:23
Was soll die Funktion denn machen? Die einzelnen Strings zählen?
Dann mach das doch:
Code:
Für jede Zeile S in der StringListe:
  Inc (Zähler [S]);
Als Zähler verwendest Du eine TStringlist. Jedem String in der Stringlist kann ein 'Object' zugeordnet werden. Man kann nun dieses Object einfach als Zähler verwenden:

Delphi-Quellcode:
i := ZaehlerListe.IndexOf(ZuZaehlenderString); // Finde Eintrag in der Zaehlerliste
If i=-1 then // Es existiert noch kein Eintrag,
  ZaehlerListe.AddObject(ZuZaehlenderString, TObject(1)) // erstelle also einen mit dem Wert 1
else begin
  n := Integer (ZaehlerListe.Objects[i]); // Ansonsten schnapp dir den Zähler und
  ZaehlerListe.Objects[i] := TObject(n+1); // erhöhe ihn um 1.
end;
Wenn Du fertig mit Zählen bist, geh die Zaehlerliste durch und erzeuge deine Ergebnisliste.

[edit]Schusseligkeitsfehler korrigiert, die Hawkeye219 entdeckt hat. [/edit]
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat