Seite 1 von 1

Base64Encoder() arbeitet nicht richtig !

Verfasst: 09.01.2005 18:01
von MVXA
Hallo!
Ich hab was interessantes festgestellt. Die Base64Encoder() Funktion speichert in den B Buffer nichts, wenn der zu codierende Text nur ein Zeichen lang ist. Hier der Code mit dem ich das getestet habe.

Code: Alles auswählen

Procedure.s Base64Encode(strText.s)
    DefType.s SpeicherB
    
    SpeicherB = Space(Len(strText)*3) 
    Base64Encoder(@strText, Len(strText), @SpeicherB, Len(SpeicherB))
    
    ProcedureReturn Trim(SpeicherB)
EndProcedure
So arbeitet die Funktion merkwürdiger Weise ganz normal:

Code: Alles auswählen

TestA.s = "5"
TestB.s = Space(500)

Base64Encoder(@TestA, Len(TestA), @TestB, Len(TestB))

Debug TestB
Kann mir das jemand erklären :? ?

Verfasst: 09.01.2005 18:36
von Deeem2031
"Der 'AusgabeBuffer' sollte 33% größer sein als der 'EingabeBuffer', mit einer minimalen Größe von 64 Bytes."

Verfasst: 09.01.2005 18:45
von MVXA
So funzt es aber auch /:-> :

Code: Alles auswählen

TestA.s = "5"
TestB.s = Space(10)

Base64Encoder(@TestA, Len(TestA), @TestB, Len(TestB))
Debug TestB

Verfasst: 09.01.2005 18:50
von Deeem2031
Na und? Zufall..

Verfasst: 09.01.2005 18:55
von MVXA
ich find das is irgendwo geschlampt :freak:. Wieso funktioniert das nich in einer Funktion ._o ?

Verfasst: 09.01.2005 19:35
von GPI
Deeem2031 hat geschrieben:Na und? Zufall..
oder es wird irgendwo in speicher rumgeschrieben, wo es nicht sollte.