Base64DecoderBuffer()

Syntax

Ergebnis = Base64DecoderBuffer(*EingabePuffer, EingabeGröße, *AusgabePuffer, AusgabeGröße)
Beschreibung
Dekodiert den angegebenen - mit Base64 kodierten - 'EingabePuffer'.

Parameter

*EingabePuffer Der Puffer, welcher die kodierten Daten enthält.
EingabeGröße Die Größe des Eingabepuffers.
*AusgabePuffer Der Ausgabepuffer, wohin die reinen Daten kopiert werden.
AusgabeGröße Die Größe des Ausgabepuffers.

Der Ausgabepuffer kann bis zu 33% kleiner als der Eingabepuffer sein, mit einer minimalen Größe von 64 Bytes. Es ist jedoch empfehlenswert, einen etwas größeren Puffer (etwa 30% kleiner) zu verwenden, um einen Speicherüberlauf ("Overflow") zu vermeiden.

Rückgabewert

Gibt die Länge der dekodierten Daten in Bytes zurück.

Beispiel

  Example$ = "This is a test string!" 
  Decoded$ = Space(1024) 
  Encoded$ = Space(1024) 
    
  Debug Base64EncoderBuffer(@Example$, StringByteLength(Example$), @Encoded$, StringByteLength(Encoded$))
  Debug Encoded$ 
    
  Debug Base64DecoderBuffer(@Encoded$, StringByteLength(Encoded$), @Decoded$, StringByteLength(Decoded$))
  Debug Decoded$

Beispiel: Kodieren & Dekodieren einer DataSection

  DataSection
    Test:
    Data.a $00, $01, $02, $03, $04, $05, $06, $07
    Data.a $08, $09, $0A, $0B, $0C, $0D, $0E, $0F
    TestEnd:
  EndDataSection
  
  Size = (?TestEnd - ?Test) * 1.35
  If Size < 64
    Size = 64
  EndIf
  
  *EncodeBuffer = AllocateMemory(Size)
  Size = Base64EncoderBuffer(?Test, ?TestEnd - ?Test, *EncodeBuffer, MemorySize(*EncodeBuffer))
  Encoded$ = PeekS(*EncodeBuffer, Size, #PB_Ascii)
  Debug Encoded$
  
  *DecodeBuffer = AllocateMemory(Size)
  Size = PokeS(*EncodeBuffer, Encoded$, StringByteLength(Encoded$, #PB_Ascii), #PB_Ascii|#PB_String_NoZero)
  Size = Base64DecoderBuffer(*EncodeBuffer, Size, *DecodeBuffer, MemorySize(*DecodeBuffer))
  ShowMemoryViewer(*DecodeBuffer, Size)

Siehe auch

Base64EncoderBuffer()

Unterstützte OS

Alle

<- Base64Decoder() - Cipher Inhaltsverzeichnis - Base64Encoder() ->