![]() |
Probleme mit dem Laden/ Speichern von Arrays
Hi!
Ich bins nochmal... Ich habe ein Problem beim Speichern und Auslesen von 2 dynamischen Arrays(beide sollen in eine Datei gespeichert werden). Beim Laden einer Datei kommt die Fehlermeldung "Project Project1.exe raised exception class EStringListError with message 'List index out of bounds(9)'. Process stopped....." . Was mache ich falsch? Ich hoffe mir kann geholfen werden... Schonmal vielen Dank im Vorraus! Bluescreen Hier der Quellcode:
Delphi-Quellcode:
Das Ergebnis in der Textdatei wäre z.B.
type
TWord1 = array of string; TWord2 = array of string; //------------- var Vocab1: TWord1; Vocab2: TWord2; i: integer; //Gibt die Länge der dynamischen Arrays an //------------- procedure TForm1.B_SaveClick(Sender: TObject); //Speichern var StrList: TStrings; y: integer; begin if SaveDialog1.Execute then begin StrList := NIL; try StrList := TStringList.Create; StrList.Add(inttostr(i)); //Es wird die Länge der Arrays gespeichert for y:=1 to i-1 do begin StrList.Add(vocab1[y]); //Array1 wird gespeichert end; for y:=1 to i-1 do begin StrList.Add(vocab2[y]); //Array2 wird gespeichert end; StrList.SaveToFile(SaveDialog1.FileName); finally StrList.Free; end; end; end; procedure TForm1.B_loadClick(Sender: TObject); //Laden 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]); //Länge der dyn. Arrays ablesen SetLength(Vocab1,i); //Setzen der Länge SetLength(Vocab2,i); for y:=1 to i do begin vocab1[y] := StrList[y]; //hier weiss ich nich so genau wie ich das lösen soll *g end; for y:=i+1 to 2*i do begin vocab2[y+i] := StrList[2*i-1]; end; finally StrList.Free; end; end; end;
Code:
5 //Länge der Arrays
12 123 1234 12345 12 123 1234 12345 |
Re: Probleme mit dem Laden/ Speichern von Arrays
Hi,
tritt der Fehler in dieser Zeile auf?
Delphi-Quellcode:
Warum nimmst du denn einmal TStringlist und woanders Array of String? Wärs nicht einfacher nur mit TStringlist zu arbeiten? :gruebel:
vocab2[y+i] := StrList[2*i-1];
Gruß, Dani |
Re: Probleme mit dem Laden/ Speichern von Arrays
Hi,
Mal zu deiner LadeRoutine: Zitat:
Du Elementanzahl würd ich gar nicht mitspeichern. Zitat:
Die Schleife müsste also richtig von 0 bis i - 1 gehen.
Delphi-Quellcode:
for y:=0 to i - 1 do begin
vocab1[y] := StrList[y + 1]; end; Wobei du die Elementanzahl nicht in eine Variable namens i schreiben solltest. i ist immer eine Schleifenvariable. Zitat:
Delphi-Quellcode:
grüße, daniel
for y := 0 to i - 1 do begin
vocab2[y] := StrList[i + y]; end; |
Re: Probleme mit dem Laden/ Speichern von Arrays
oha... tut mir leid.. aber das problem ist schon in einem anderen Thread gelöst worden (
![]() Trotzdem vielen dank an Dani und Sanchez für's Kopfzerbrechen.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 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 by Thomas Breitkreuz