Hi!
Ich bins nochmal (zum 3. Mal weil der Internetexplorer 3mal abge**** ist und ich alles nochmal tippen muss
). Ich habe ein Problem beim Speichern und auslesen 2er dynamischen Arrays in einer Datei. Es erscheint folgende Fehlermeldung: "Project1 Project1.exe raised
exception class EStringListError with message 'List index out of bounds(9)'....". Ich hoffe mir kann geholfen werden.
MfG und vielen Dank im Vorraus!
Bluescreen
Hier der Quellcode.. ich hoffe ihr könnt etwas damit anfangen.. ansonsten schreib ich noch ein paar Erklärungen rein
Delphi-Quellcode:
TWord1 = array of string;
TWord2 = array of string;
//*************************
var
Vocab1: TWord1;
Vocab2: TWord2;
i: integer; //i= Länge der dyn. Arrays
//**************************
procedure TForm1.B_SaveClick(Sender: TObject);
var StrList: TStrings;
y: integer;
begin
if SaveDialog1.Execute then begin
StrList := NIL;
try
StrList := TStringList.Create;
StrList.Add(inttostr(i));
for y:=1 to i-1 do begin
StrList.Add(vocab1[y]);
end;
for y:=1 to i-1 do begin
StrList.Add(vocab2[y]);
end;
StrList.SaveToFile(SaveDialog1.FileName);
finally
StrList.Free;
end;
end;
end;
procedure TForm1.B_loadClick(Sender: TObject);
var StrList: TStrings;
y: integer;
begin
if OpenDialog1.Execute then begin
StrList := NIL;
try
StrList := TStringList.Create;
StrList.LoadFromFile(OpenDialog1.FileName);
i:=StrToInt(StrList[1]);
SetLength(Vocab1,i);
SetLength(Vocab2,i);
for y:=1 to i do begin
vocab1[y] := StrList[y];
end;
for y:=i+1 to 2*i do begin
vocab2[y+i] := StrList[2*i-1];
end;
finally
StrList.Free;
end;
end;
end;
Eine gespeicherte Datei sieht so aus:
Code:
5
12
123
1234
12345
12
123
1234
12345