Hallo,
habe ein Problem mit dem Base64 Encoder.
Und zwar erhalte ich immer einen Fehler sobald ich versuche Daten in einen Zielspeicher größer als 2GB zu enkodieren.
Kann mir jemand vielleicht weiter helfen?
Danke
Base64 große Dateien
- NicTheQuick
- Ein Admin
- Beiträge: 8820
- 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: Base64 große Dateien
Nutzt du die 32-Bit oder die 64-Bit-Version von Purebasic?
Re: Base64 große Dateien
Die 64 Bit Version
Dieser Code funktioniert
Dieser funktioniert nicht.
Dieser Code funktioniert
Code: Alles auswählen
src=AllocateMemory(1500000000)
dst=AllocateMemory(2147483647)
Base64Encoder(src, 1500000000, dst,2147483647)
Code: Alles auswählen
src=AllocateMemory(1500000000)
dst=AllocateMemory(2147483648)
Base64Encoder(src, 1500000000, dst,2147483648)
Re: Base64 große Dateien
"The specified length is negative", Tja, da ist der Base64Encoder() auf 2GB beschränkt.
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
- NicTheQuick
- Ein Admin
- Beiträge: 8820
- 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: Base64 große Dateien
Darf man fragen, was genau du machen willst?
Re: Base64 große Dateien
Das würde mich auch interessieren, warum man eine große Datei kodieren möchte. Was ist das Ziel deines Vorhabens? Möchtest du sie über das Internet übertragen o.ä.?
Ich weiß zwar nicht, ob Base64Encoder() eine eigene Funktion ist oder ob diese unter Windows auf eine existierende WinAPI-Funktion basiert, aber versuche mal mit folgender WinAPI-Funktion: CryptBinaryToString_()
Als Parameter entweder #CRYPT_STRING_BASE64 ($00000001) oder #CRYPT_STRING_BASE64HEADER ($00000000) verwenden, ob mit oder ohne Header.
Vielleicht wird da mehr als 2 GB unterstützt.
Viel Glück
Ich weiß zwar nicht, ob Base64Encoder() eine eigene Funktion ist oder ob diese unter Windows auf eine existierende WinAPI-Funktion basiert, aber versuche mal mit folgender WinAPI-Funktion: CryptBinaryToString_()
Als Parameter entweder #CRYPT_STRING_BASE64 ($00000001) oder #CRYPT_STRING_BASE64HEADER ($00000000) verwenden, ob mit oder ohne Header.
Vielleicht wird da mehr als 2 GB unterstützt.
Viel Glück
Re: Base64 große Dateien
Ich würde eh nicht 2GB "mit einem Rutsch" kodieren.
Einfach in kleine Pakete (vielfaches von 3) zerlegen, und danach wieder zusammen fügen, die Blöcke bauen ja nicht aufeinander auf.
Einfach in kleine Pakete (vielfaches von 3) zerlegen, und danach wieder zusammen fügen, die Blöcke bauen ja nicht aufeinander auf.
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

