Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi bestimmte einträge in listbox zählen (https://www.delphipraxis.net/109868-bestimmte-eintraege-listbox-zaehlen.html)

Kingpin000 9. Mär 2008 10:55


bestimmte einträge in listbox zählen
 
halli hallo,

ich bin als anfänger auf folgendes problem gestoßen:

ich möchte eine listbox machen, in der nur bestimmte einträge gezählt werden
(nicht die gesamte listbox)und dann soll es in einem label angezeigt werden.

Danke im Voraus

DeddyH 9. Mär 2008 10:59

Re: bestimmte einträge in listbox zählen
 
Und welche Einträge? Prinzipiell kannst Du in einer Schleife alle Einträge durchgehen und prüfen.
Delphi-Quellcode:
Zaehler := 0;
for i := 0 to ListBox.Items.Count - 1 do
  if ListBox.Items[i] = 'Passt' then
    inc(Zaehler);
Label.Caption := inttostr(Zaehler);

Kingpin000 9. Mär 2008 13:33

Re: bestimmte einträge in listbox zählen
 
alles klar, hat geklappt.
hätte noch eine kleine frage zum label, könnte ich anzeigen lassen, "Dings 10/Bums 3" usw., und das in einem label?

mkinzler 9. Mär 2008 13:34

Re: bestimmte einträge in listbox zählen
 
Ja warum nicht?

Kingpin000 9. Mär 2008 14:08

Re: bestimmte einträge in listbox zählen
 
ich meinte mehere ergebnisse in einem label..

DeddyH 9. Mär 2008 14:09

Re: bestimmte einträge in listbox zählen
 
Klar geht das.
Delphi-Quellcode:
Label1.Caption := Label1.Caption + 'Wuppdi';

mkinzler 9. Mär 2008 14:09

Re: bestimmte einträge in listbox zählen
 
Delphi-Quellcode:
Label.Caption := 'Dings:'+inttostr(Zaehler)+'/Bums:'+IntToStr( zaehler2);

xZise 9. Mär 2008 15:50

Re: bestimmte einträge in listbox zählen
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz