UnpackMemory - Zielspeichergröße
UnpackMemory - Zielspeichergröße
Tachchen,
Triviale Frage:
Wenn ich eine gepackten Speicherbereich entpacke, die entpackte Größe aber nicht (nicht mehr) kenne, habe ich keine Chance diese herauszufinden oder ? Also bevor ich UnpackMemory anwende ...
Oder steht die im Header des gepackten Bereichs drin ?
Denn wenn ich doch mal zu zuwenig bereit halte, schreibt ja UnpackMemory einfach drüber weg und macht große Probleme ...
Muss ich also beim Anwenden von PackMemory() immer selber noch die Ursprungsgröße noch vorweg speichern?
Triviale Frage:
Wenn ich eine gepackten Speicherbereich entpacke, die entpackte Größe aber nicht (nicht mehr) kenne, habe ich keine Chance diese herauszufinden oder ? Also bevor ich UnpackMemory anwende ...
Oder steht die im Header des gepackten Bereichs drin ?
Denn wenn ich doch mal zu zuwenig bereit halte, schreibt ja UnpackMemory einfach drüber weg und macht große Probleme ...
Muss ich also beim Anwenden von PackMemory() immer selber noch die Ursprungsgröße noch vorweg speichern?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: UnpackMemory - Zielspeichergröße
Mir wäre nichts bekannt. Wäre übrigens keine Schlechte idee in PB das zu erweitern. Einfach einen zusätzlichen Header einfügen und PB sollte beim entpacken kontrollieren ob der Header da ist oder nicht und entsprechen reagieren.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: UnpackMemory - Zielspeichergröße
Ist ja zum Glück nicht so schwer da mal eben ein int mit der Größe davor zu schreiben. Einbauen wäre natürlich auch nett.
Re: UnpackMemory - Zielspeichergröße
Tip: Häng nicht nur ein long für die Größe davor. Mach ein "Header"
bspw.
das MyPC als kennung davor. Solltest du nämlich, aus welchen Gründen auch immer, mal erweitern müssen, kannst du einfach diesen Magiccode ändern und weitere Datenfelder einfügen. Es ist also leichter erweiterbar. (Wenn dir bspw. später einfällt, das es sinnvoll gewesen wäre, ein CRC-Prüfsumme einzufügen. Mit der Kennung kannst du dann sowohl die alten Daten als auch die neuen Daten laden).
bspw.
Code: Alles auswählen
data.l 'MyPC'
data.l <länge>
data <gepackte daten>
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: UnpackMemory - Zielspeichergröße
Würde sogar dazu tendieren noch sowas wie eine versionsnummer zu verwenden, sonst ist der schöne Magiccode verbraucht und man muss was anderes nutzten, obwohl vielleicht nur ein wenig dazugekommen ist.GPI hat geschrieben:Tip: Häng nicht nur ein long für die Größe davor. Mach ein "Header"
bspw.das MyPC als kennung davor. Solltest du nämlich, aus welchen Gründen auch immer, mal erweitern müssen, kannst du einfach diesen Magiccode ändern und weitere Datenfelder einfügen. Es ist also leichter erweiterbar. (Wenn dir bspw. später einfällt, das es sinnvoll gewesen wäre, ein CRC-Prüfsumme einzufügen. Mit der Kennung kannst du dann sowohl die alten Daten als auch die neuen Daten laden).Code: Alles auswählen
data.l 'MyPC' data.l <länge> data <gepackte daten>
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: UnpackMemory - Zielspeichergröße
Soviel ich weiß steht die Ursprungsgröße bei
Code: Alles auswählen
PeekL(*PackedMemory + 2)
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
Re: UnpackMemory - Zielspeichergröße
HeX0R hat geschrieben:Soviel ich weiß steht die Ursprungsgröße beiCode: Alles auswählen
PeekL(*PackedMemory + 2)
oh, mit sowas wär ich vorsichtig, da undokumentiert... Wäre nett, wenn das in die Dokumentation einfließen würde. Am besten als UnPackedLength()-Funktion.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: UnpackMemory - Zielspeichergröße
Das ist auch falsch, da es nur für JCalG1 gild, welcher nur unter x86 verwendet wird. Unter x64 ist die Magic vom Header 3 Byte lang.GPI hat geschrieben:HeX0R hat geschrieben:Soviel ich weiß steht die Ursprungsgröße beiCode: Alles auswählen
PeekL(*PackedMemory + 2)
oh, mit sowas wär ich vorsichtig, da undokumentiert... Wäre nett, wenn das in die Dokumentation einfließen würde. Am besten als UnPackedLength()-Funktion.
Dokumentiert ist es aber natürlich: http://www.bitsum.com/jcalg1.htm
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Re: UnpackMemory - Zielspeichergröße
Das ist zwar dokumentiert, aber nicht für PureBasic. Großer Unterschied.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: UnpackMemory - Zielspeichergröße
Wieso? PB nutzt die JCalG1 Lib für x86.GPI hat geschrieben:Das ist zwar dokumentiert, aber nicht für PureBasic. Großer Unterschied.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
