Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listenindex fehler bei einer Tstringlist (https://www.delphipraxis.net/137283-listenindex-fehler-bei-einer-tstringlist.html)

gangs-taas 17. Jul 2009 21:52


Listenindex fehler bei einer Tstringlist
 
hey,
ich hoffe ihr könnt mir helfen.
also ich habe eine Tstringlist die aus einer txt-datei geladen wird.
nun möchte ich ein paar zeilen in memo-felder einfügen.

das klappt auch noch.

Aber direkt nach dem einfügen bekomme ich die meldung

Listenindex übersteigt Maxmimum(irgendeinezahl)

ich versteh einfach nicht wieso.

muss man die größe von Tstringlisten auch angeben ?!

und wenn ja kann ich irgendwie sagen die sind immer so groß wie die Textdatei ?!

hoffe ihr könnt mir helfen. Danke schonmal.

lg

Nils_13 17. Jul 2009 21:54

Re: Listenindex fehler bei einer Tstringlist
 
Ein kleiner Codeausschnitt wäre ganz gut, aber vermuten was schiefgeht kann ich auch so: Irgendwo wirst Du wohl ein Pred bzw. eine -1 vergessen haben. Daher probiert er auf einen nicht vorhandenen Stringlist-Eintrag zuzugreifen und da bis vor diesen alles im Memo steht, empfindest Du die Fehlermeldung als unabhängig davon. Aber ist nur eine Vermutung, ohne Code schwierig zu sagen.

gangs-taas 17. Jul 2009 22:20

Re: Listenindex fehler bei einer Tstringlist
 
hier der code müsst ihr nicht alles durchlesen ist oft ähnlich nur mit anderen Tagen

Delphi-Quellcode:
procedure TForm1.InDieMemoFelderSchreiben(var Textdatei,Textdatei2: String);
var
  zv : integer;
  zv2 :integer;
  Pruefstring : String ;
begin
  zv := 0;
  zv2 := 0;
  if FileExists(Textdatei) and FileExists(Textdatei2) then begin
    Zwischenspeicher.LoadFromFile(Textdatei);
    Zwischenspeicher2.LoadFromFile(Textdatei2);
  end
  Pruefstring := Zwischenspeicher[Zv];
  If Pruefstring = 'Montag' Then  begin
    Label1.Caption := Zwischenspeicher[Zv];
    inc(Zv) ;
  end;
  Pruefstring := Zwischenspeicher[Zv];
  While not (PruefString = 'Dienstag') do begin
    Memo1.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
  end;
  If Pruefstring = 'Dienstag' Then  begin
    Label2.Caption := Zwischenspeicher[Zv];
    inc(Zv) ;
    Pruefstring := Zwischenspeicher[Zv];
  end;
  While not (PruefString = 'Mittwoch') do begin
    Memo2.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
  If Pruefstring = 'Mittwoch' Then  begin
    Label3.Caption := Zwischenspeicher[Zv];
    inc(Zv) ;
    Pruefstring := Zwischenspeicher[Zv];
  end;
  While not (PruefString = 'Donnerstag') do begin
    Memo3.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
  end;
  If Pruefstring = 'Donnerstag' Then  begin
    Label4.Caption := Zwischenspeicher[Zv];
    inc(Zv) ;
    Pruefstring := Zwischenspeicher[Zv];
  end;
  While not (PruefString = 'Freitag') do begin
    Memo4.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
  end;
  If Pruefstring = 'Freitag' Then  begin
    Label5.Caption := Zwischenspeicher[Zv];
    inc(Zv) ;
    Pruefstring := Zwischenspeicher[Zv];
  end;
  While not (PruefString = 'Samstag') do begin
    Memo5.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
  end;
  If Pruefstring = 'Samstag' Then  begin
    Label6.Caption := Zwischenspeicher[Zv];
    inc(Zv) ;
    Pruefstring := Zwischenspeicher[Zv];
  end;
  While not (PruefString = 'Sonntag') do begin
    Memo6.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
  end;
  If Pruefstring = 'Sonntag' Then  begin
    Label7.Caption := Zwischenspeicher[Zv];
    inc(Zv) ;
    Pruefstring := Zwischenspeicher[Zv];
  end;
  While not (PruefString = 'Ende') do begin
    Memo7.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
  If Pruefstring = 'Ende' Then  begin
    Label8.Caption := Zwischenspeicher2[Zv2];
    inc(Zv2) ;
    Pruefstring := Zwischenspeicher2[Zv2];
  end;
  While not (PruefString = 'Dienstag') do begin
    Memo8.Lines.Add(Zwischenspeicher2[Zv2]);
    inc(Zv2);
    Pruefstring := Zwischenspeicher2[Zv2];
  end;
  end;
  end;
end;
[edit=Sharky]Neu gesendet damit es neu in den aufbereitet wird. Mfg, Sharky[/edit]

omata 17. Jul 2009 22:23

Re: Listenindex fehler bei einer Tstringlist
 
In welcher Zeile tritt der Fehler auf?

Luckie 17. Jul 2009 22:24

Re: Listenindex fehler bei einer Tstringlist
 
Puh. Etwas Quellcodeformatierung könnte wohl nicht schaden. :?

gangs-taas 17. Jul 2009 22:26

Re: Listenindex fehler bei einer Tstringlist
 
Der fehler kommt wenn Prüfstring 'Dienstag' ist also ganz unten ...

und beide Tstringlisten entahlten genügend einträge ...

gangs-taas 17. Jul 2009 22:30

Re: Listenindex fehler bei einer Tstringlist
 
ps. wieso macht der den quelltext hier oben eigendlich nicth farbig ?

müpsste nicht z.b. das Procedure Blau sein ?!

wenn andere quelltexte einfügen ist das auch so aber bei mir irgendwien icht wieso ?!

omata 17. Jul 2009 22:30

Re: Listenindex fehler bei einer Tstringlist
 
Setze einen Breakpoint und schau dir Zeile für Zeile an, was passiert. Der Fehler sitzt meist vor dem Gerät. Dadurch, dass der Fehler kommt sind garantiert nicht genug Zeilen in deiner Datei. Testweise kannst du ja auch einfach mal ein paar mehr eintragen.
Versuch einfach rauszufinden, an welcher Stelle die Realität und deine Gedankenwelt nicht mehr zusammenpassen. Sprich: benutze den Debugger.

gangs-taas 17. Jul 2009 22:34

Re: Listenindex fehler bei einer Tstringlist
 
also ich habe in meiner Datei2 die also auch in Zwischenspeicher2 geladen wird

Montag
dann ein Termin
Dienstag
Mittwoch
Donnerstag
Freitag
Samstag
Sonntag


und er soll montag + termin laden und wenn prüfstring Dienstag ist dann nicht mehr.
also es sind genügend zeilen im Tstringlist da....


und wo der Fehler kommt zeig ich euch oben im quelltext okay ?!

gangs-taas 17. Jul 2009 22:41

Re: Listenindex fehler bei einer Tstringlist
 
nein also hab das mit F7 überprüft

er arbeitet die ganz schleife ab ABER nachdem er ganz unten angekommen ist springt er irgednwie wieder hoch
er springt bis hier

Delphi-Quellcode:
   While not (PruefString = 'Mittwoch') do begin
    Memo2.Lines.Add(Zwischenspeicher[Zv]);
    inc(Zv);
    Pruefstring := Zwischenspeicher[Zv];
und dann gibt er einen fehler ...

aber wieso springt er wieder hoch ?!
versteht ihr das ?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr.
Seite 1 von 3  1 23      

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