Hallo,
ich habe einen Speicherbereich mit Daten unterschiedlichster Datentypen gefüllt. Die zugehörigen Werte sollen nun aus einer Datei mit Readdata() bzw. writedata() gelesen bzw. geschrieben werden. Damit das funktioniert, muss natürlich zuvor der Zugriff auf den Speicherbereich im Ram richtig konfiguriert werden.
Dabei macht mir der Datentyp 'Integer' Probleme, denn im RAM muss ich 1 oder 2Byte reservieren, je nachdem ob ich eine 32 oder 64-Bit exe erstelle. Beim Konfigurieren des RAM-Bereichs erhalte ich diese Information aus Sizeof(Integer). Damit klappen Lesen und Schreiben in die Datei, solange ich nur entweder mit 32-Bit oder mit 64-Bit exe schreibe und(!) lese.
Was aber muss ich tun, wenn ich z.B. die Datei mit 32-Bit exe erstelle und mit einer 64-Bit exe (bzw. umgekehrt) lese?
Mir fällt bisher als Einziges ein, in der Datei mitzuspeichern, ob sie mit einer 32-Bit oder 64-Bit exe beschrieben wurde.
Oder sehe ich hier Probleme, wo in Wirklichkeit keine sind?
Integer 4- und 8Bit:Lesen und Schreiben
- ProgOldie
- Beiträge: 236
- Registriert: 19.05.2012 17:09
- Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02
Integer 4- und 8Bit:Lesen und Schreiben
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Integer 4- und 8Bit:Lesen und Schreiben
Wenn du ein Dateiformat entwirfst, solltest du niemals Datentypen verwenden, die verschiedene Größen haben auf unterschiedlichen Systemen. Du solltest also von Anfang an wissen wie groß die Werte in deinen Variablen werden können und dann den passenden Datentyp nehmen. In deinem Fall wäre das möglicherweise dann eben ein Quad. Aber ich weiß nicht genau, was du vorhast.
Re: Integer 4- und 8Bit:Lesen und Schreiben
Da anscheinend der 32Bit Zahlenraum ausreicht, kannst Du eigentlich auf .i verzichten und Longs nehmen. Auch in der 64Bit Fassung. Allerdings hilft das nicht wirklich, wenn es sich bei den Daten um Speicheradressen handelt, die dann auch auf 64Bit Systemen funktionieren sollen...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Integer 4- und 8Bit:Lesen und Schreiben
Wobei sich da die Frage stellen würde: Wer speichert Speicheradressen in Dateien? Das macht mal so gar keinen Sinn. 

- ProgOldie
- Beiträge: 236
- Registriert: 19.05.2012 17:09
- Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02
Re: Integer 4- und 8Bit:Lesen und Schreiben
Zunächst 'mal Dank für die schnellen Antworten!
Nick hat schon Recht, Speicheradressen speichere ich natürlich nicht. Auch wenn für meinen Zweck Integer ausreichen, ist die Idee mit den Longs in der Tat die einfachste, weil vom exe-Format unabhängige Lösung.
Nick hat schon Recht, Speicheradressen speichere ich natürlich nicht. Auch wenn für meinen Zweck Integer ausreichen, ist die Idee mit den Longs in der Tat die einfachste, weil vom exe-Format unabhängige Lösung.
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Re: Integer 4- und 8Bit:Lesen und Schreiben
Is mir klarNicTheQuick hat geschrieben:Wobei sich da die Frage stellen würde: Wer speichert Speicheradressen in Dateien? Das macht mal so gar keinen Sinn.

PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom