Base64DecoderBuffer()
Синтаксис
Result = Base64DecoderBuffer(*InputBuffer , InputSize , *OutputBuffer , OutputSize)
Описание
Декодирует указанный буфер, закодированный алгоритмом Base64.
Параметры
*InputBuffer Входной буфер, содержащий закодированные данные. InputSize Размер входного буфера. *OutputBuffer Выходной буфер, куда будут помещены раскодированные данные. OutputSize Размер выходного буфера.
Выходной буфер может быть на 33% меньше, чем входной буфер, минимальный размер 64 байта. Рекомендуется обеспечить чуть больший буфер, например на 30% меньше, чтобы избежать переполнений.
Возвращаемое значение
Возвращает длину декодированных данных в байтах.
Пример
Example$ = "Это тестовая строка!" 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$
Пример: Кодирование и Декодирование из 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)
См. также
Base64EncoderBuffer()
Поддерживаемые OS
Все