Autor Beitrag
theend
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: Di 08.03.05 17:12 
EStringListError -> Listenindex überschreitet das Maximum (6);
Diesen Fehler erhalte ich ich immer wenn ich den Button klicke.

Meine Frage wie kann ich den Index erhöhen, ich brauche min. einen Index von 10.

In der Datei die ich einlese sind 10 Zeihlen, welche ich jede nacheinander in das ShowMessage ausgeben will.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
var Dateiname: TStringList;
i: integer;
begin
i := 0;
if FileExists('cams.txt'then
  begin
    while i <= 10 do
    begin
     Dateiname := TStringList.Create;
     Dateiname.LoadFromFile('cams.txt');
     ShowMessage(Dateiname.Strings[i]); //fehler entsteht hier glaub ich da String index zuhoch wird?!
     i:= i + 1;
    end
  end
end;


Zuletzt bearbeitet von theend am Di 08.03.05 17:23, insgesamt 2-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 08.03.05 17:15 
Du weißt aber offensichtlich, dass bei "0" angefangen wird zu zählen!?
Wenn 10 Elemente drin stehen, darfst du nur bis 9 zählen.
theend Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: Di 08.03.05 17:18 
jasocul
ja danke.. war grade eine mischung aus 2 probelem die ich hab... i prog heute schon den ganzen tag rum bin schon bissal irre...

hab jetzt meine frage koregiert..:


Wie kann ich ihm sagen wenn nichts mehr in der Datei steht soll er ende..
Also ich breuchte die möglichkeit das er mir die anzahl der Zeihlen in eine varable gibt so das ich

while i <= 10 do

durch:

while i <= x do

ersätzen kann


Zuletzt bearbeitet von theend am Di 08.03.05 17:23, insgesamt 1-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 08.03.05 17:22 
Ich glaube mit Dateiname.Strings.Count solltest du die Anzahl der Einträge bekommen. In der Schleife natürlich bis count-1 gehen.

Äähm, solltest du das LoadFromFile nicht besser vor der Schleife machen?
csa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win XP
Delphi 2005 Prof.
BeitragVerfasst: Di 08.03.05 17:25 
Titel: RE: EStringListError -> Listenindex überschreitet Maximum
ja, und "Dateiname := TStringList.Create" nur einmal vor der Schleife.
SchelmVomElm
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 154

W2K Pro
D5 Pro
BeitragVerfasst: Di 08.03.05 17:28 
:shock: Schauder...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button1Click(Sender: TObject);  
var 
  Dateiname: TStrings;  
  i: integer;  
begin  
  if FileExists('cams.txt'then  
  begin  
    Dateiname := TStringList.Create; 
    Dateiname.LoadFromFile('cams.txt');  
    for i:=0 to Dateiname.Count - 1 do 
    begin   
     ShowMessage(Dateiname[i]);
    end  
  end  
end;

_________________
for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);


Zuletzt bearbeitet von SchelmVomElm am Di 08.03.05 17:28, insgesamt 1-mal bearbeitet
theend Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 56



BeitragVerfasst: Di 08.03.05 17:28 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
var Dateiname: TStringList;
i: integer;
begin
i := 0;
Dateiname := TStringList.Create;
Dateiname.LoadFromFile('cams.txt');

if FileExists('cams.txt'then
  begin
    while i <= Dateiname.Count - 1 do
    begin
     ShowMessage(Dateiname.Strings[i]);
     i:= i + 1;
    end
  end


so getz danke
csa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win XP
Delphi 2005 Prof.
BeitragVerfasst: Di 08.03.05 17:50 
Titel: RE: EStringListError -> Listenindex überschreitet Maximum
das funktioniert, allerdings sollte die FileExists-Prüfung vor dem Einlesen der Datei stattfinden. Da sich Dateiname.Count in der Schleife nicht ändert, kann man ein einfaches For statt dem While nehmen.