![]() |
Record: Read/Write FILE OF TYPE
Hallo,
zuerst einmal, ich habe mir folgenden Datentyp erstellt:
Delphi-Quellcode:
...eine einfach verkettete Liste mit einem Zeiger.
type List = ^Elem;
Elem = record Name: String; Date: TDate; Time: TTime; next: List; end; Data = File Of List; Dafür habe ich mir dann ein paar Funktionen und Prozeduren gebastelt. Probleme macht aber das Laden und Speichern dieses Datentyps. Folgende Prozedur bzw. Funktion benutz ich dafür:
Delphi-Quellcode:
Das Speichern und Laden funktioniert zur Laufzeit des Programmes einwandfrei.
procedure ListToFile(FileName: String; l: List);
var f: Data; begin AssignFile(f, FileName); Rewrite(f); Write(f, l); CloseFile(f) end; function ListFromFile(FileName: String): List; var f: Data; l: List; begin AssignFile(f, FileName); Reset(f); if not Eof(f) then Read(f, l); CloseFile(f); ListFromFile := l end; Wenn ich das Programm jedoch neustarte und die gespeicherte Datei lade und Name, Date und Time auslese, bekomm ich einen Fehler "Access Violation". FileSize gibt mir jedoch 1 zurück. Also befindet sich noch ein Element in der Datei. Habe ich die Datei falsch gespeichert oder liegt es an der verketteten Liste??? Ich komm da leider nicht alleine weiter... |
Re: Record: Read/Write FILE OF TYPE
New (l) fehlt beim Laden. L ist nicht initialisiert.
Und du solltest dich an Pascal'sche Namenskonventionen halten (PList = ^TElem; TElem = record ...) |
Re: Record: Read/Write FILE OF TYPE
Du speicherst nur Zeiger und keine Records.
So wird das nix. Da musst du wohl ein ganzes Stück weiter ausholen. In der DP gibt es zum speichern von Records ne menge Threads. |
Re: Record: Read/Write FILE OF TYPE
:lol:
![]() |
Re: Record: Read/Write FILE OF TYPE
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 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