Fehler in INLINE?

Previous topic - Next topic

amarliani

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...

Schranz0r

öhm, ich seh in dem Code kein INLINE  :|
Exe schmiert trotzdem weg, komisch !
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

amarliani

Ä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.  :'(

Schranz0r

Schick doch bitte mal den Code mit dem "Fehler"...
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

amarliani

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]

Kitty Hello

#5
Der Fehler liegt warscheinlich in dem String-Handling. Da habe ich was geändert.


Ah!

Code (glbasic) Select

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?


amarliani

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")

Kitty Hello

Musst Du umbauen. Wenn 0, dann leer machen.

amarliani

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?

Kitty Hello

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.

amarliani

OK, begriffen, danke. Muß ich den Code halt entsprechend umbauen. Danke für die Hilfe!