![]() |
Speichern funktioniert nicht!
Hi,
ich möchte Datem aus einem Array speichern. Das Array hat als Datentyp einen Selbstdeklarierten. Nun habe ich speicher ich wie folgt:
Delphi-Quellcode:
Das $-Zeichen benutze ich später als Trennung der einzelnen Variablen, damit ich die Datei wieder auslesen kann. Nun stürzt das Programm allerdings beim speichern ab, mit der Fehlermeldung, dass eine Execption der Klasse "EAccessViolation" aufgetreten sei, dann noch Zugriffsverletzungen bei Speicheradressen. Wenn ich nur ein Element speicher, bringt er keine Fehlermeldung. Ich habe es auch mit 2 und 3 Elementen + $-Zeichen probiert, ging bei manchen auch, aber es geht nicht mit allen, das ist sehr sonderbar. Weiß jemand was ich falsch mache?
procedure Speichern();
var name:String; datei:textfile; x: integer begin if Form1.SaveDialog1.Execute then begin name:=Form1.SaveDialog1.FileName; try AssignFile(datei,name); rewrite(datei); for x:=0 to 200 do //alle Array-elemente begin writeln(datei,Array[x].Name+'$'+Array[x].Vorname+'$'+ Array[x].Geb+'$'+Array[x].Strasse+'$'); //sämtliche Variablen spichern end; closefile(datei); messagedlg('Erfolgreich gespeichert !',mtinformation,[mbok],0); except messagedlg('Fehler beim speichern!',mtinformation,[mbok],0); exit; end; end; end; |
Re: Speichern funktioniert nicht!
Höchstwahrscheinlich greifst du auf ein Element zu was überhaupt nicht exisiert!
Wie hast du Array deklariert? Und wieso hat diese Variable keinen vernüpftigen, aussagekräftigen Namen? |
Re: Speichern funktioniert nicht!
Zitat:
Zitat:
|
Re: Speichern funktioniert nicht!
Zitat:
|
Re: Speichern funktioniert nicht!
beim wievielten Schleifendurchlauf passiert das, schon beim ersten?
|
Re: Speichern funktioniert nicht!
@Khabarakh
Also eigentlich hab ich ne Bereichsprüfung da drin, aba da schau ich auch noch ma nach, weil da sowieso etwas noch nicht passt. @SirThornberry Ja wenn es passiert, dann gleich beim ersten Schleifendurchlauf. |
Re: Speichern funktioniert nicht!
Ok war ein richtig dummer Fehler. Habe erst jetzte wieder mit Delphi gearbeitet und vorher mit Java und C++. Das Problem dabei ist, dass die Array bei Java usw. bei 0 beginnen, und bei Delphi habe ich es bei 1 beginnen lassen. Die Prüfung habe ich natürlich wie von Java gewohnt bei 0 beginnen lassen, deswegen kam es zur Zugriffsverletzung. Also schon dumm ;). Ich danke euch allen, die sich die Mühe gemacht mir zu helfen.
mfg Chuqa |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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-2025 by Thomas Breitkreuz