Zitat Zitat von scripter Beitrag anzeigen
Code:
for i in range (intTextlaenge):     #Nachricht in Dualzahlen umwandeln, anhand der laenge jedes Bit einzeln codieren mit hilfe der If-Abfragen
        if strAlarmtext[i] == ' ':
            strInformationsbits = str(strInformationsbits+'0100000')
        elif strAlarmtext[i] == '!':
            strInformationsbits = str(strInformationsbits+'0100001')
        elif strAlarmtext[i] == '"':
        usw.…
Wenn ich das richtig sehe wandelst du die Zeichen des Textes (Ascii) in Binär um. Ich denke das könnte man vereinfachen:

Code:
for i in range (intTextlaenge):
        charOrd = ord(strAlarmtext[i])
        if charOrd > 0:
                 strInformationsbits = str(strInformationsbits + bin(charOrd)
        else:
                print('Das Zeichen ' + str(strAlarmtext[i]) + 'konnte nicht codiert werden. Es wird zu einem Leerzeichen')
                strInformationsbits = str(strInformationsbits + '0100000')

Ist nur eine Grundlegende Idee, nicht getestet und sicher noch ausbaufähig…
Das ist zufällig genau das, was mir ein Kumpel heute früh auch schon geraten hat, dem ich das Script gezeigt habe. :D

Ja, damit könnte man diese ewig langen if-Abfragen einkürzen. Gerade an der Stelle, wo der Binärcode erzeugt wird. Das waren glaube ich insgesamt 96 (!) einzelne else if-Abfragen. Das ist natürlich mit deinem Vorschlag wesentlich besser gelöst. Ich werde es bei Gelegenheit mal einbauen. Danke für den Tipp!

PS. Für die, die sich das Script anschauen,
Bitte über die eventuellen Schreibfehler in den Kommentaren hinweg sehen. Da gibt's bestimmt einige zu finden. ;D
Die wurden nur schnell nebenbei reingeklimpert um die Aktionen zu erläutern.