Autor Beitrag
patrick dee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Mi 02.10.02 16:44 
hallo

habe folgende einträge in der listbox stehen

8500
6500
0000
8887
8975

nun meine Frage wie kann ich in einem Label anzeigen wievile Einträge es mit 8 gibt. also wie oben steht müßtze Label 1.Caption 8 anzeigen. Also nur zählen wenn das erste zeichen eine 8 ist alle anderen nicht.

danke

patrick dee

_________________
Glauben heißt nichts wissen ...
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 02.10.02 16:49 
Hallo,

vesulche mal:
ausblenden Quelltext
1:
Label1.Caption := IntToStr(ListBox1.Items.Count);					


Gruß
Klabautermann
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 02.10.02 16:56 
Hi!

Ich verstehe nicht ganz, was Du machen möchtest. Wenn ich Deinen letzten Satz anschaue, möchtest Du folgendes: du möchtest zählen, wieviele Items als erstes Zeichen eine 8 haben, oder?

Geh doch einfach alle Items durch und erhöhe einen Zähler um eins, wenn das erste Zeichen '8' ist.

Also so:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
VAR i, anzahl : INTEGER;
begin
  anzahl:=0;
  for i:=0 TO ListBox1.Items.Count-1 do
  if (ListBox1.Items[i])[1] = '8' then Inc(anzahl);
end;


ACHTUNG: Habe den Code einfach so hingeschrieben, ohne ihn zu testen!

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 02.10.02 17:42 
ist das wirklich so, dass man da einfach ListBox1.Items[i])[1] nehem kann und dann das erste zeichen bekommt ??

Ich würds zur sicherheit per COPY machen !!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
majolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 334

Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
BeitragVerfasst: Mi 02.10.02 17:49 
hatte mal dazu einen ähnlichen Thread:
www.auq.de/viewtopic.php?t=2406
Vielleicht hilfts.
Gruss
majolo
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 02.10.02 18:02 
@Matze: jetzt hattest Du mich so verunsichert, dass ich es ausprobiert habe. Und ja, es funktioniert.

@patrick dee:
solltest Du vielleicht doch die Einträge zählen wollen, die generell eine '8' enthalten, solltest Du mit Pos('8',ListBox1.Items[i]) arbeiten.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 02.10.02 18:04 
@peterlustig !!!

super !!! jetzt hab ich wieder was dazugelernt !!! danke !!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
patrick dee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 311

Win 98SE, WinXP
D3,D6
BeitragVerfasst: Mi 02.10.02 20:22 
Es geht fast :

ABER ERST EINMAL D A N K E AN ALLE WIRKLICH SUPER WIE SCHNELL ES HIER ANTWORTEN GIBT. :P

So hier mein code für meine Playliste :
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
procedure THaupt_Form.ComboBox1Change(Sender: TObject);
var
  Found : boolean;
  i     : integer;
  x     : integer;
  anzahl: integer;
begin

  Found := False;
  if( ComboBox1.Text = '24 Uhr' )then
  begin
    with ListBox1.Items do
    begin
      BeginUpdate;
      Clear;
      for i := 0 to Playliste.Count - 1 do
        Add( Playliste.Strings[ i ]);
      EndUpdate;
    end;
    Abort;
  end;
  i := 0;
  with ListBox1.Items do
  begin
    BeginUpdate;
    Clear;
    while not Found and( i < Playliste.Count )do
    begin
      if( Pos( ComboBox1.Text, Playliste.Strings[ i ]) > 0 )then
      begin
        Inc( i );
        while not( Pos( ' Uhr', Playliste.Strings[ i ]) > 0 )do
        begin
          Add( Playliste.Strings[ i ]);
          Inc( i );
        end;
        Found := True;
      end
      else
        Inc( i );
    end;
//---------------- alle 8000 Einträge zählen um die Titel f. die Stunde zu bekommen ------
   anzahl:=0;
  for x:=0 TO ListBox1.Items.Count-1 do
  if (ListBox1.Items[x])[1] = '8' then Inc(anzahl);
  StatusBar1.SimpleText := ' Titel für diese Stunde ' + (IntToStr(anzahl));

   EndUpdate;
  end;
end; // ComboBox1Change

Wenn ich nun in der ComboBox die 24 Stunden aufrufe also die Liste
für den Tag stürzt mein Programm ins Nirvana ab und es wird nichts gezählt. Was ist da noch faul ????

UND GANZ WICHTIG :

wie kriege ich es hin das zb ein Timer immer kurz vor der nächsten Stunde also Beispiel es ist jetzt 20:59:59 dann soll die Liste für die nächste Stunde geladen werden usw. Wenn es 23:59:59 ist soll die für den nächsten Tag geladen werden.

Laden tue ich meine Listen so :
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure THaupt_Form.Programm11Click(Sender: TObject);
var
  datum : string;
begin
  datum:= FormatDateTime('dd-mm-yy',NOW);
  with Playliste do
  begin
    BeginUpdate;
      Clear;
       LoadFromFile( Tools_Form.edit1.text + datum + '.pl1' );
        Prog_Label.Caption := 'Prog. 1';
         EndUpdate;
         end;

Also Thanks für EURE super Hilfe. Und wie geht das mit der Pos Geschichte ????????????

euer

patrick dee

(03.10.02 00:55 Tino) Code-Tags hinzugefügt.

_________________
Glauben heißt nichts wissen ...
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 02.10.02 21:06 
Hi!

patrick dee hat folgendes geschrieben:

Wenn ich nun in der ComboBox die 24 Stunden aufrufe also die Liste
für den Tag stürzt mein Programm ins Nirvana ab und es wird nichts gezählt. Was ist da noch faul ????

Ich weiß natürlich nicht genau, was dein Programm machen soll, aber müsste durch das Abort; nicht das ganze beendet werden, bevor er überhaupt zum Zählen kommt? Ich habe Abort; noch nie benutzt, aber ich könnte es mir vorstellen.

patrick dee hat folgendes geschrieben:

wie kriege ich es hin das zb ein Timer immer kurz vor der nächsten Stunde also Beispiel es ist jetzt 20:59:59 dann soll die Liste für die nächste Stunde geladen werden usw. Wenn es 23:59:59 ist soll die für den nächsten Tag geladen werden

Timer ist genau das Stichwort. Du packst einen Timer auf deine Form, der jede Sekunde die aktuelle Uhrzeit überprüft und bei Bedarf die Prozedur zum Laden der Liste startet. .... So ungefähr zumindest.


Patrick Dee hat folgendes geschrieben:

Und wie geht das mit der Pos Geschichte ????????????

Es war einmal ein Pos ... Nein, okay, Pos(substring, string) gibt Dir, wenn Substring in String enthalten ist, die Position des ersten Zeichens von Substring im String. Kommt Substring nicht im String vor, gibt Pos 0 zurück.

MfG,
Peter

<edit>
Rückst Du Deinen Quelltext nicht ein, oder schluckt das Forum das Einrücken nur, wenn Du die Codemarkierungen verwendest?
</edit>

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 03.10.02 00:55 
Peter Lustig hat folgendes geschrieben:
Rückst Du Deinen Quelltext nicht ein, oder schluckt das Forum das Einrücken nur, wenn Du die Codemarkierungen verwendest?

Ja, Leerzeichen am Anfang einer Zeile werden entfernt. Wenn man den Sourcecode in Code-Tags einschließt bleiben sie erhalten.

Gruß