Bin2Post / Binäre Daten gleich im Forumspost mitliefern
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Die zLib.lib ist bei jeder PB Installation vorhanden. Die hat nichts mit der neuen libzip.lib zu tun, aus PB5.10.
Die zLib.lib ist z.B. für die ganzen ImagePlugins, sowie auch für Ogre usw. erforderlich. PB verwendet sich aber
nicht für seine Packroutinen, aber ich bin so frei
Geändert hat sich die Version vor kurzem, das ändert aber nichts an der Kompatibilität.
Die zLib.lib ist z.B. für die ganzen ImagePlugins, sowie auch für Ogre usw. erforderlich. PB verwendet sich aber
nicht für seine Packroutinen, aber ich bin so frei
Geändert hat sich die Version vor kurzem, das ändert aber nichts an der Kompatibilität.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Alles klar, jetzt habe ichs auch geschnallt.ts-soft hat geschrieben:Die zLib.lib ist bei jeder PB Installation vorhanden. Die hat nichts mit der neuen libzip.lib zu tun, aus PB5.10.
Die zLib.lib ist z.B. für die ganzen ImagePlugins, sowie auch für Ogre usw. erforderlich. PB verwendet sich aber
nicht für seine Packroutinen, aber ich bin so frei
Das schau ich mir auf jeden Fall an.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Für Eure Allgemeinbildung: http://de.wikipedia.org/wiki/Zlib
Die lib wird fast überall verwendet, bzw. genutzt. OpenOffice, PNG und tausende weiterer Bibliotheken und Programme, sowie
auf allen Betriebssystemen (von Android bis Unix).
Die lib wird fast überall verwendet, bzw. genutzt. OpenOffice, PNG und tausende weiterer Bibliotheken und Programme, sowie
auf allen Betriebssystemen (von Android bis Unix).
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Hmm, ich komme gerade nicht weiter mit der Nutzung der gzWrite/gzOpen Funktionen
gzOpen gibt ein handle zurück, dessen Struktur mit nicht ganz klar ist.
Wenn ich das handle typenlos deklariere, dann gibt es bei der nächsten Verwendung (gzWrite) einen invalid memoryaccess error.
Bei meiner Recherche bin ich auf folgende Struktur für gzFile gekommen.
Falls das die richtige Struktur sein sollte, dann gekomme ich sie nicht nach PB übersetzt, zumindest nicht das dritte Element (z_off64_t pos).
Mein bisheriger (nicht funktionierender) Testcode sieht so aus:
Viellecht kann mir hier noch jemand unter die Arme greifen?
Gruß Kurzer
gzOpen gibt ein handle zurück, dessen Struktur mit nicht ganz klar ist.
Code: Alles auswählen
ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
Bei meiner Recherche bin ich auf folgende Struktur für gzFile gekommen.
Code: Alles auswählen
//C Code?
struct gzFile_s {
unsigned have;
unsigned char *next;
z_off64_t pos;
};
Mein bisheriger (nicht funktionierender) Testcode sieht so aus:
Code: Alles auswählen
EnableExplicit
Global sOutFile.s, sFileMode.s, sText.s
Global *InBuffer
Global *Filehandle
Import "zlib.lib"
gzclose(a.i) As "_gzclose"
gzopen(a.i, b.i) As "_gzopen"
gzwrite(a.i, b.i, c.i) As "_gzwrite"
EndImport
sOutFile = "F:\Out.txt"
sFileMode = "wb9"
sText = "01234567890123456789"
*InBuffer = @sText
*Filehandle = gzopen(@sOutFile, @sFileMode)
Debug *Filehandle
If *Filehandle <> 0
Debug Str(gzwrite(*Filehandle, *InBuffer, 10))
gzclose(*Filehandle)
EndIf
Gruß Kurzer
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Was hast Du den jetzt vor?
Einfach die Resource im Speicher packen und dann mit Base64 encodieren, bzw. umgekehrt und den
Text speichern. Darum ging es doch in Deinem Projekt.
Einfach die Resource im Speicher packen und dann mit Base64 encodieren, bzw. umgekehrt und den
Text speichern. Darum ging es doch in Deinem Projekt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Hmm, stimmt. Ich könnte die Dateien alle hintereinander in einen Memoryblock laden (mit entsprechendem Header trennen) und sie dann dort packen.
Ich dachte mir halt, dass ich nicht so viel RAM verbrate, wenn ich das Packen der zig Einzeldateien in eine komprimierte Datei per gzWrite erledige.
Die resultierende, gepackte GZ-Datei hätte ich dann wiederum in den Speicher geladen und dort nach Base64 kodiert.
Vermutlich alles nonsense bei den heutigen RAM Speichergrößen.
Trotzdem würde ich mein Beispiel gern zum laufen bekommen. Bin nach Absenden meines posts nicht weiter am Rechner gewesen.
Ich dachte mir halt, dass ich nicht so viel RAM verbrate, wenn ich das Packen der zig Einzeldateien in eine komprimierte Datei per gzWrite erledige.
Die resultierende, gepackte GZ-Datei hätte ich dann wiederum in den Speicher geladen und dort nach Base64 kodiert.
Vermutlich alles nonsense bei den heutigen RAM Speichergrößen.
Trotzdem würde ich mein Beispiel gern zum laufen bekommen. Bin nach Absenden meines posts nicht weiter am Rechner gewesen.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Datei laden, packen, encodieren, speichern, nächste Datei dasselbe Spiel. Am schluß noch einen Header schreiben, damit Du
alles wieder aufteilen kannst.
Header in den speicher lesen, dann Laden, decodieren, entpacken, speichern, nächter block aus dem Header.
Nur falls die Dateien doch grösser sind
Zu gzip kann ich Dir nichts sagen, ist auf jedem Fall nicht ohne und den Aufwand wahrscheinlich nicht wert.
alles wieder aufteilen kannst.
Header in den speicher lesen, dann Laden, decodieren, entpacken, speichern, nächter block aus dem Header.
Nur falls die Dateien doch grösser sind
Zu gzip kann ich Dir nichts sagen, ist auf jedem Fall nicht ohne und den Aufwand wahrscheinlich nicht wert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Ganz so hoher Aufwand ist es nicht mit den gzFile Kommandos zu arbeiten, nur funktioniert das ganze nicht unter jeder PB Version.
Du hast es evtl. im englischen Forum schon gelesen, dass ich da nicht weiterkomme.
Kannst Du mir sagen, ob es ein PB internes bzw. ein Kompilerproblem ist, dass folgender Code unter PB 4.31 kompiliert wird aber unter höheren Versionen einen Linker Error erzeugt? Fehlen PB da irgendwelche Symbole so dass es nicht mit der aktuellen zLib zurecht kommt?
Ich hab leider zu wenig Ahnung davon was diesen Fehler auslöst. Meine Recherche hat lediglich ergeben, dass sich ab M$ VC++6 irgendwelche Bezeichnungen geändert haben und deswegen dort die oldname.lib eingeführt wurde. Nur hilft mir das unter PB leider nichts (ich bin auch kein C/C++ Coder).
Du hast es evtl. im englischen Forum schon gelesen, dass ich da nicht weiterkomme.
Kannst Du mir sagen, ob es ein PB internes bzw. ein Kompilerproblem ist, dass folgender Code unter PB 4.31 kompiliert wird aber unter höheren Versionen einen Linker Error erzeugt? Fehlen PB da irgendwelche Symbole so dass es nicht mit der aktuellen zLib zurecht kommt?
Ich hab leider zu wenig Ahnung davon was diesen Fehler auslöst. Meine Recherche hat lediglich ergeben, dass sich ab M$ VC++6 irgendwelche Bezeichnungen geändert haben und deswegen dort die oldname.lib eingeführt wurde. Nur hilft mir das unter PB leider nichts (ich bin auch kein C/C++ Coder).
Code: Alles auswählen
Structure gzFile_s
iHave.i
iNext.i
iPos.i
EndStructure
Import "zlib.lib"
gzopen.i(Filename.s, Mode.s)
EndImport
*Filehandle.gzFile_s = gzopen(GetTemporaryDirectory() + "test.txt", "wb9")
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Code: Alles auswählen
Structure gzFile_s
iHave.i
iNext.i
iPos.i
EndStructure
ImportC "oldnames.lib" : EndImport
ImportC "zlib.lib"
gzopen.i(Filename.s, Mode.s)
EndImport
*Filehandle.gzFile_s = gzopen(GetTemporaryDirectory() + "test.txt", "wb9")
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: Bin2Post / Binäre Daten gleich im Forumspost mitliefern
Ich fange so langsam an ganz böse zu bereuen, dass dass ich mir 'linkende' Compiler und librarybasierende Entwicklungsumgebungen nie angetan habe und immer nur auf die 'flache Ebene' geschworen habe.
Vielen Dank ts-soft!
Vielen Dank ts-soft!
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.