Lua-Script 2 Python-Script

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
BlackJack

@archifox: Wie Sirius3 schon angemerkt hat sind das bei Lua drei Dezimalziffern, und im Quelltext sind die alle unter 100 weshalb alle mit einer 0 anfangen. Was das UTF-8 in Klammern in Deinem Text verloren hat verstehe ich nicht so ganz.

'\f' und '\b' kann man in Python auch verwenden:

Code: Alles auswählen

In [1]: '\f'
Out[1]: '\x0c'

In [2]: '\b'
Out[2]: '\x08'
Am Anfang ist keine Umwandlung eines Zeichenliterals von Lua nach Python sondern ein zusätzlicher Wert weil Lua bei 1 anfängt die Zeichen in einer Zeichenkette zu zählen, Python aber bei 0. Ich habe dort das Nullbyte ('\0' oder '\x00') gewählt damit ein Nullbyte unverändert durch das dekodieren kommt.

Ich habe die Zeichenketten auch nicht manuell angepasst sondern die in Lua einfach als Base64 ausgeben lassen und das in Python dann geparst. Ist weniger fehleranfällig als da die Werte einzeln per Hand zu übersetzen:

Code: Alles auswählen

> mime = require("mime")      
> print((mime.b64("\r)=9\f\aK\",i{SrX#qLa0@Z8&:\014\030;d?\bA(\026G!\023b\000x\021jm 5\022$+s\025l\029<N^2\005WE\017M\vR]\003C\020_o1~keTvYH\002.\004zV\027\019Ptc\028\0063p\016IJ-O\n6\t\0157/\001h`uUByfDn[\018\031g>\024*|'4}w%QF\\")))
DSk9OQwHSyIsaXtTclgjcUxhMEBaOCY6Dh47ZD8IQSgaRyEXYgB4FWptIDUWJCtzGWwdPE5eMgVXRRFNC1JdA0MUX28xfmtlVHZZSAIuBHpWGxNQdGMcBjNwEElKLU8KNgkPNy8BaGB1VUJ5ZkRuWxIfZz4YKnwnNH13JVFGXA==

Code: Alles auswählen

In [4]: 'DSk9OQwHSyIsaXtTclgjcUxhMEBaOCY6Dh47ZD8IQSgaRyEXYgB4FWptIDUWJCtzGWwdPE5eMgVXRRFNC1JdA0MUX28xfmtlVHZZSAIuBHpWGxNQdGMcBjNwEElKLU8KNgkPNy8BaGB1VUJ5ZkRuWxIfZz4YKnwnNH13JVFGXA=='.decode('base64')
Out[4]: '\r)=9\x0c\x07K",i{SrX#qLa0@Z8&:\x0e\x1e;d?\x08A(\x1aG!\x17b\x00x\x15jm 5\x16$+s\x19l\x1d<N^2\x05WE\x11M\x0bR]\x03C\x14_o1~keTvYH\x02.\x04zV\x1b\x13Ptc\x1c\x063p\x10IJ-O\n6\t\x0f7/\x01h`uUByfDn[\x12\x1fg>\x18*|\'4}w%QF\\'
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Sirius3 hat geschrieben: @darktrym: Am Anfang des Übersetzens steht immer das Verstehen. Und wenn man den Algorithmus erst verstanden hat, dann kann man ihn auch gleich ordentlich schreiben.
Nun, bei diesem Code ist die Logik überschaubar und die Eigenheiten der Sprache waren das Problem. Ich würde mir das nicht zutrauen, krypt. Dinge umzuschreiben nur weil ich die Theorie dahinter verstanden habe.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Antworten