Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einfaches Abspeichern in externer Datei // Schülerverwaltung (https://www.delphipraxis.net/140636-einfaches-abspeichern-externer-datei-schuelerverwaltung.html)

DeddyH 28. Sep 2009 20:47

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
Du hast ein statisches Array mit 10 Elementen deklariert.
Zitat:

Delphi-Quellcode:
Datensatz: array[1..10] of tSchueler;

Das bedeutet, dass maximal 10 Datensätze dort hineinpassen. Willst Du aber eine unbekannte Anzahl von Datensätzen verwalten, bietet sich ein dynamisches Array (oder eine Liste, aber das lassen wir jetzt mal weg) an. Ein dynamisches Array wird wie folgt deklariert:
Delphi-Quellcode:
Datensatz: array of tSchueler;
Die Länge setzt Du mit SetLength fest, dadurch wächst/schrumpft das Array dynamisch. Somit bist Du flexibler.

jawo3 28. Sep 2009 20:55

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
Aber woher weiß ich denn welche Zahl ich am Ende von setlength eintragen muss? Kann ich irgendwie ersehen, welches die höchste Datennummer ist und das dann als Ende eintragen?

DeddyH 28. Sep 2009 21:01

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
Die aktuelle Länge des Array bekommst Du mit Length. Um also ein Element anzufügen, kannst Du das so machen(Pseudocode):
Delphi-Quellcode:
SetLength(Array, Length(Array) + 1);
Array[High(Array)] := Daten;
Löschen des letzten Elements geht dann logischerweise mit
Delphi-Quellcode:
SetLength(Array, Length(Array) - 1);

jawo3 28. Sep 2009 21:08

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
Okay, werde ich gleich mal versuchen einzubauen.

Hat noch jemand eine Idee, warum es zu der Fehlermeldung kommt?

DeddyH 28. Sep 2009 21:10

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
In welcher Zeile tritt der Fehler auf?

jawo3 28. Sep 2009 21:14

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
In der Zeile:

read(f, Datensatz[i]);

in der Prozedur zum auslesen.

DeddyH 28. Sep 2009 21:17

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
Entweder ist es schon zu spät, ich bin blind oder der Fehler liegt irgendwo anders. Für mich sieht der Code OK aus :gruebel:

jawo3 28. Sep 2009 21:27

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
Mhmm, es scheint jetzt zu funktionieren. Ich habe mal die alte 8 Megabyte Große Datei Schueler.dta gelöscht. Sie wurde vom Programm neu angelegt und der Fehler tritt nicht mehr auf...

DeddyH 28. Sep 2009 21:31

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
War der Record evtl. vorher mit einer anderen Größe deklariert? Das wäre zumindest eine Erklärung.

jawo3 28. Sep 2009 21:42

Re: Einfaches Abspeichern in externer Datei // Schülerverwal
 
Naja, mein Array war ja vorher auf 99999^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Seite 2 von 3     12 3      

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