Seit der neuen Version 6.184 geht ein Teil meines INLINE-Codes nicht mehr. Es handelt sich genauer gesagt um die Base64-Verschlüsselung von Moru aus dieser Quelle hier:
http://gamecorner.110mb.com/index.php?page=base64-encode-decode-library
Bis zur Version 6.174 lief das Ganze problemlos, Update auf 6.184: geht nicht mehr, Update rückgängig gemacht: geht wieder.
Irgend eine Idee? Ach ja, mittlerweile hab ich eine Premiumlizenz mit NET und 3D...
öhm, ich seh in dem Code kein INLINE :|
Exe schmiert trotzdem weg, komisch !
Äh... ups. mein Fehler :( . Der INLINE-Code stammte von TaToad aus dem Thread hier:
http://www.glbasic.com/forum/index.php?topic=2788.0
Ich verwend beide Teile nur zusammen (Überprüfung des verschlüsselten Files mit CRC32), daher das Mißgeschick. Aber klappen tuts immer noch nicht, und ich find keinen Fehler drin. :'(
Schick doch bitte mal den Code mit dem "Fehler"...
Anbei. Das Testprogramm sollte im Window-Titel zusätzlich anzeigen "Praxis Dr. Marliani". Geht mit der alten GLB-version, aber nicht mehr mit der neuen, wie gesagt.
[attachment deleted by admin]
Der Fehler liegt warscheinlich in dem String-Handling. Da habe ich was geändert.
Ah!
group$ = CHR$(u) + group$ // add to decoded temp-group
Das "u" ist bei mir zwishendurch 0.
Bitte mit der alten Version: Was sind die Werte für "u" und was ist der Grou$ am Schluss?
Also das "u" wird zwischendurch immer mal wieder 0, das ist normal. Hier mal ein Auszug aus dem Trace der alten Version mit den ersten paar Durchläufen:
u Group$
------------
104 ""
97 h
90 ah
0 Zah
114 ""
97 r
110 ar
0 nar
112 ""
116 p
112 tp
0 ztp
120 ""
97 x
114 ax
0 rax
usw. Wenn mans richtig rum zusammensetzt, kommt so "Zahnarztpraxis" raus. Endwert für u ist 0, für Group$ ist "i" (insgesamt gibt der String "Zahnrztpraxis Dr. Andrea Marliani")
Musst Du umbauen. Wenn 0, dann leer machen.
Sorry, aber ich steh glaub ich auf der Leitung. Genau so funzt es, soweit ich den Code begriffen habe, doch schon. Die Werte für u und Group$ sind um je einen Schritt verschoben. u enthält immer den Wert, der zu Group$ im nächsten Schritt zugefügt wird, und 0 bedeutet Group$ an Teil$ anfügen und dann leeren. Zumindest hab ich Morus Code und den Trace so verstanden:
1. Schritt: u=104 (ASCII h), Group$ leer
2. Schritt: u=97 (ASCII a), Group$="h"
3. Schritt: u=90(ASCII Z), Group$="ah"
4. Schritt: u=0, Group$="Zah"
5. Schritt: u=114 (ASCII r aus der nächsten Dreiergruppe), Group$ wieder leer.
usw. Und, wie gesagt, bis Version 6.174 klappte der Code völlig einwandfrei. Irgend eine Idee, was da schief laufen könnte mit der neuen Version?
Der Schritt 5 geht jetzt nicht mehr.
group$ = "Zah0nar0ztp0rax" im neuen GLBasic, wobei "0" ein '\0', also CHR$(0) Character ist.
Das ist a grad in Deinem Fall ein Fehler.
Sorry, aber das war wichtig, weil nur so kann man jetzt Binäre Dateien laden.
OK, begriffen, danke. Muß ich den Code halt entsprechend umbauen. Danke für die Hilfe!