Autor Beitrag
FinalFantasy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 127

Windows XP
Delphi 5 Professional, Visual Studio 7 .NET (C#)
BeitragVerfasst: Mo 29.08.05 11:45 
Ich habe zwei Strukturen A und B.
A enthält einen Pointer auf B.
Wenn ich jetzt A und B mit Blockwrite in eine Datei schreibe, und anschliessend mit Blockread wieder auslese, dann dürfte eigentlich der Pointer in A nichtmehr stimmen, oder?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 29.08.05 16:39 
Das wäre schon ein ziemlicher Zufall, wenn es noch passen würde. :wink:
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 29.08.05 16:52 
Hallo

Nein, das muss kein Zufall sein. Globale Variablen beispielsweise sind, solange du das Projekt nicht anpackst, immer am gleichen Ort. Wenn der Record als globale Variable oder auch als Feld beispielsweise in der Hauptform deklariert ist, landet er immer an der gleichen Stelle (solange das Programm nicht geändert wird)... Natürlich macht es nicht viel Sinn, einen Pointer zu speichern, der sowieso schon durch den Code feststeht...

Cu,
Udontknow
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 30.08.05 08:15 
Auf einen Pointer auf globale Variablen wäre ich hier gar nicht gekommen. Ich bin eher von einer verketteten Liste von Blöcken ausgegangen... :gruebel:
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 30.08.05 08:19 
Naja, auch da kann die Variable an der selben Stelle erscheinen, wenn der Programmablauf immer derselbe ist...

Cu,
Udontknow
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 30.08.05 08:27 
Theoretisch ja, aber verlassen würde ich mich nicht darauf. Aber du schreibst ja selbst "kann"!
Und jede Programmänderung kann dir das durcheinander schmeißen. Wird bestimmt lustig, wenn mann dann versucht die Daten wieder einzulesen. :lol:

Habe mir jetzt nochmal die ursprüngliche Formulierung durchgelesen.
Zitat:
Wenn ich jetzt A und B mit Blockwrite in eine Datei schreibe, und anschliessend mit Blockread wieder auslese...

Wenn man die Daten mit Blockwrite schreibt und danach wieder einliest, ohne das Programm zu verlassen oder Pointer aufzulösen, dürfte es funktionieren.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Di 30.08.05 08:32 
Ganz genau. :D Das das Speichern von Pointern aus diesen Gründen nicht sinnvoll ist, versteht sich ja. Ich wollte ja auch nur das Phänomen erklären, das FinalFantasy hatte.

Nachtrag: Wenn er das Programm nicht verlässt bzw die Struktur nicht anderweitig freigibt, ist der Zeiger natürlich erst recht noch gültig.

Cu,
Udontknow