oscat.lib > oscat.lib fuer CoDeSys 3

Base64 Bausteine ...

<< < (2/2)

peewit:
wir drehen uns im kreis  (kommt mir bekannt vor)

du behauptest das der baustein nicht richtig funktioniert

dann musst du auch ein nachvollziehbares beispiel bringen das zeigt das etwas nicht korret ist


also einen base 64 string und den daraus resultierenden byte buffer inhalt.


--- Code: ---Das ist der String den ich dekodieren möchte. : EQUZ4wUAEg9KRVEwNDcwNjQ2
Das Ergebnis ist : ãJEQ0470646

--- Ende Code ---

dieses beispiel als reinen text zu bringen ist sehr schlecht und ist auf der basis ja auch völlig korrekt.

 

mactoolz:
Hi,

dann schau dir mal bitte den Anhang an ...



[gelöscht durch Administrator]

peewit:
nach dem du nicht lesen willst was ich immer wieder schreibe, nehme ich mir nochmals zeit


ich hatte dir doch schon mitgeteilt das du das ergebnis nicht als text sondern als byte-stream sehen musst
da nicht alle byte als darstellbare zeichen angezeigt werden können.

der richtiger bytestream ist   
$11,$05,$19,$E3,$05,$00,$12,$0F,$4A,$45,$51,$30,$34,$37,$30,$36,$34,$36
 
jetzt zeigt dir zwar codesys alle nicht darstellbaren zeichen mit $xx an, jedoch hat das einen kleinen haken !

codesys kümmert sich nicht darum wie lange dein string wirklich ist, sondern definiert das ende eines string ganz primitiv mittels $00,  somit wird dein string ab den 5. byte (zeichen) abgeschnitten, da hier erstmals ein byte $00 folgt.

baustein arbeitet völlig korrekt

darum nochmals und zum letztenmal:
du darfst bei einen echten bytestream der mittels base64 kodiert wurde und du dekodieren möchtest das ergebnis in keinen string ablegen, sondern in einen bytearray, da ein byte 00 deinen string abschneidet.

aber das ist kein problem sondern ein handhabungsfehler -> also deiner !

mactoolz:
Hi,

jetzt reg dich mal nicht so auf ... ist doch halb so wild was da passiert.
Du liest auch nicht alles ...

Ich habe geschrieben das ich weis das nicht jedes Byte ein Sinnvolles Zeichen ergibt.

Eins habe ich nicht bedacht ein Byte mit Inhalt von 16#00 bei der Konvertierung in String die Terminierung ergibt.

Danke

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln