Entwickler-Ecke
Sonstiges (Delphi) - Blockread/-Write mit Pointer?
FinalFantasy - Mo 29.08.05 11:45
Titel: Blockread/-Write mit Pointer?
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 - Mo 29.08.05 16:39
Das wäre schon ein ziemlicher Zufall, wenn es noch passen würde. :wink:
Udontknow - 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 - 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 - 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 - 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 - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!