Autor Beitrag
Jojojoxx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: Di 08.11.05 15:29 
Hallo!

Lässt sich irgendwie ein kompletter Record in eine Datei schreiben? Bisher ist es mir nur gelungen, einezelne Variablen des Records in eine Datei zuschreiben. Der Fehler beim Schreiben des kompletten Records lautet dann

"Ungültiger Typ in Write/WriteLn-Anweisung".
Kann ich also die verschiedenen Variablen nur nacheinander in einer Datei unterbringen und dann auch wieder nach und nach auslesen!?
Danke euch!

mfg

Jojo


Moderiert von user profile iconraziel: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 08.11.2005 um 18:19
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 08.11.05 15:35 
Wie wärs mit nem TFileStream und WriteBuf?

_________________
Programmers never die, they just GOSUB without RETURN
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: Di 08.11.05 15:40 
Hi!

Die Begriffe sagen mir jetzt nichts, es ging mir auch mehr darum zu wissen, ob es möglich ist...

mfg

Jojo
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Di 08.11.05 15:42 
Irgendwie sicher.

_________________
Programmers never die, they just GOSUB without RETURN
Christian R.
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.11.05 16:38 
So klappt es in Deinem Fall.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
type TRecData =record
     end;

var Data     :TRecData;
    FileData :File of TRecData;

procedure ReadFile;
begin
  Write(FileData,Data);
end;

procedure WriteFile;
begin
  Read(FileData,Data);
end;


Grundsätzlich gilt:

1. Bei untypisierten Dateien "var FileData :File;" nimmt man anstelle von "Read()" und "Write()" die Befehle "BlockRead()" und "BlockWrite()". Die Unterschiede beim Öffnen der untypisierten Datei werden in der Hilfe zu "BlockRead()" und "BlockWrite()" ersichtlich, da bei "Reset()" und "ReWrite()" ein 2. Parameter angegeben wird.

2. Bei typisierten Dateien "var FileData :File of Typ;" gibt es kein "ReadLn()" oder "WriteLn()", nur "Read()" und "Write()". Da der Record von seiner Struktur her immer einem Datensatz ähnelt, stellt die Datei des selben Types immer eine Art Datenbank dar. Man liest bzw. schreibt kein einzelnes Datenfeld sondern immer einen kompletten Datensatz, also immer den kompletten Record, in obrigen Beispiel die Variable "Data".

Wichtig wäre für Dich, in der Delphi-Hilfe "Seek()" nachzuschlagen, falls Du das nicht bereits getan hast, und "IOResult" in Verbindung mit "{$I}".

Viel Erfolg.
Jojojoxx Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 386



BeitragVerfasst: Di 08.11.05 16:42 
Okay, danke dir!

mfg

Jojo