bin, hex, dez, oct <-> ascii

This commit is contained in:
2025-07-22 21:08:33 +02:00
parent f7123ed094
commit 76caa8a218
2 changed files with 113 additions and 138 deletions

View File

@@ -66,17 +66,32 @@ def auswahl_verarbeiten():
elif auswahl == "ROT47":
st.session_state.output_text = tools.rot47(text)
st.session_state.map_data = None
elif auswahl == "REPLACE":
st.session_state.output_text = tools.REPLACE(text)
elif auswahl == "ASCII-Text->HEX":
st.session_state.output_text = tools.ascii_to_hex(text)
st.session_state.map_data = None
elif auswahl == "REPLACE":
st.session_state.output_text = tools.REPLACE(text)
elif auswahl == "ASCII-Text->DEZ":
st.session_state.output_text = tools.ascii_to_dez(text)
st.session_state.map_data = None
elif auswahl == "REPLACE":
st.session_state.output_text = tools.REPLACE(text)
elif auswahl == "ASCII-Text->Octal":
st.session_state.output_text = tools.ascii_to_octal(text)
st.session_state.map_data = None
elif auswahl == "REPLACE":
st.session_state.output_text = tools.REPLACE(text)
elif auswahl == "ASCII-Text->BIN (16bit)":
st.session_state.output_text = tools.ascii_to_bin16(text)
st.session_state.map_data = None
elif auswahl == "ASCII-Text->BIN (8bit)":
st.session_state.output_text = tools.ascii_to_bin8(text)
st.session_state.map_data = None
elif auswahl == "HEX->ASCII-Text":
st.session_state.output_text = tools.hex_to_ascii(text)
st.session_state.map_data = None
elif auswahl == "DEZ->ASCII-Text":
st.session_state.output_text = tools.dez_to_ascii(text)
st.session_state.map_data = None
elif auswahl == "Octal->ASCII-Text":
st.session_state.output_text = tools.octal_to_ascii(text)
st.session_state.map_data = None
elif auswahl == "BIN->ASCII-Text":
st.session_state.output_text = tools.bin_to_ascii(text)
st.session_state.map_data = None
elif auswahl == "REPLACE":
st.session_state.output_text = tools.REPLACE(text)
@@ -133,7 +148,14 @@ option = st.sidebar.radio("hidden_label",
"ROT13",
"ROT18",
"ROT47",
"",
"ASCII-Text->HEX",
"ASCII-Text->DEZ",
"ASCII-Text->Octal",
"ASCII-Text->BIN (16bit)",
"ASCII-Text->BIN (8bit)",
"HEX->ASCII-Text",
"DEZ->ASCII-Text",
"Octal->ASCII-Text",
"",
"",
"",

View File

@@ -445,37 +445,26 @@ def rot47(eingabetext):
x.append(i)
return ''.join(x)
'''
def asciitodez():
eingabetext = Eingabe.get(1.0, END)
def ascii_to_dez(eingabetext):
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Text zu Dezimalzahlen]
Der eingegebene Text wird in Dezimalzahlen umgewandelt. """ + "\n\n")
return ("### Text zu Dezimalzahlen\n"
"Der eingegebene Text wird in Dezimalzahlen umgewandelt.")
else:
z = []
for i in eingabetext:
z.append(str(ord(i)))
Ausgabe.insert(1.0, ' '.join(z) + "\n")
return ' '.join(z)
def deztoascii():
def dez_to_ascii(eingabetext):
seperator = ("|,", "_", ".", "-", "/", ";", ",")
eingabetext = Eingabe.get(1.0, END)
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Dezimalzahlen zu Text]
Die eingegebenen Dezimalzahlen werden in die
entsprechenden UNICODE-Zeichen umgewandelt.
Als Trennungszeichen zwischen den Zahlen sind
folgende Zeichen erlaubt: | , _ . - / ; , und
Leerzeichen. Bei Verwendung von Leerzeichen
sollten möglichst nur 1 Leerzeichen zwischen
den Zahlen verwendet werden (überzählige
Leerzeichen werden sonst als nicht erkannte
Zeichen behandelt).""" + "\n\n")
return ("### Dezimalzahlen zu Text\n"
"Die eingegebenen Dezimalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. "
"Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet "
"werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
else:
se = ""
for s in seperator:
@@ -487,11 +476,11 @@ Zeichen behandelt).""" + "\n\n")
try:
ausz = int(eingabetext)
except ValueError:
Ausgabe.insert(1.0, "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!\n",
"re")
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!"
else:
Ausgabe.insert(1.0, chr(ausz) + "\n")
return chr(ausz)
else:
ausgabetext = ""
txt = eingabetext.split(se)
atxt = ""
ignor = ""
@@ -502,44 +491,34 @@ Zeichen behandelt).""" + "\n\n")
ignor = ignor + str(z) + " "
else:
atxt = atxt + chr(az)
Ausgabe.insert(1.0, atxt + "\n")
Ausgabe.insert(1.0, "umgewandelte Zeichen:\n", "bu")
if ignor != "":
Ausgabe.insert(1.0, ignor + "\n")
Ausgabe.insert(1.0, "Achtung nicht erkannte Zeichen:\n", "re")
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n"
ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt
return ausgabetext
def asciitohex():
eingabetext = Eingabe.get(1.0, END)
def ascii_to_hex(eingabetext):
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Text zu Hexadezimalzahlen]
Der eingegebene Text wird in Hexadezimalzahlen umgewandelt. """ + "\n\n")
return ("### Text zu Hexadezimalzahlen\n"
"Der eingegebene Text wird in Hexadezimalzahlen umgewandelt.")
else:
z = []
for i in eingabetext:
hexstr = ("{:X}".format(ord(i))) # großes X für Hex in Großbuchstaben
z.append(hexstr)
Ausgabe.insert(1.0, ' '.join(z) + "\n")
return ' '.join(z)
def hextoascii():
def hex_to_ascii(eingabetext):
seperator = ("|,", "_", ".", "-", "/", ";", ",")
eingabetext = Eingabe.get(1.0, END)
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Hexadezimalzahlen zu Text]
Die eingegebenen Hexadezimalzahlen werden in die
entsprechenden UNICODE-Zeichen umgewandelt.
Als Trennungszeichen zwischen den Zahlen sind
folgende Zeichen erlaubt: | , _ . - / ; , und
Leerzeichen. Bei Verwendung von Leerzeichen
sollten möglichst nur 1 Leerzeichen zwischen
den Zahlen verwendet werden (überzählige
Leerzeichen werden sonst als nicht erkannte
Zeichen behandelt).""" + "\n\n")
return ("### Hexadezimalzahlen zu Text\n"
"Die eingegebenen Hexadezimalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. "
"Als Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den "
"Zahlen verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
else:
se = ""
for s in seperator:
@@ -551,11 +530,11 @@ Zeichen behandelt).""" + "\n\n")
try:
ausz = int(eingabetext, 16)
except ValueError:
Ausgabe.insert(1.0, "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!\n",
"re")
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!"
else:
Ausgabe.insert(1.0, chr(ausz) + "\n")
return chr(ausz)
else:
ausgabetext = ""
txt = eingabetext.split(se)
atxt = ""
ignor = ""
@@ -566,43 +545,33 @@ Zeichen behandelt).""" + "\n\n")
ignor = ignor + str(z) + " "
else:
atxt = atxt + chr(az)
Ausgabe.insert(1.0, atxt + "\n")
Ausgabe.insert(1.0, "umgewandelte Zeichen:\n", "bu")
if ignor != "":
Ausgabe.insert(1.0, ignor + "\n")
Ausgabe.insert(1.0, "Achtung nicht erkannte Zeichen:\n", "re")
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n"
ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt
return ausgabetext
def asciitooctal():
eingabetext = Eingabe.get(1.0, END)
def ascii_to_octal(eingabetext):
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Text zu Octalzahlen]
Der eingegebene Text wird in Octalzahlen umgewandelt. """ + "\n\n")
return ("### Text zu Octalzahlen\n"
"Der eingegebene Text wird in Octalzahlen umgewandelt.")
else:
z = []
for i in eingabetext:
z.append("{:o}".format(ord(i)))
Ausgabe.insert(1.0, ' '.join(z) + "\n")
return ' '.join(z)
def octaltoascii():
def octal_to_ascii(eingabetext):
seperator = ("|,", "_", ".", "-", "/", ";", ",")
eingabetext = Eingabe.get(1.0, END)
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Octalzahlen zu Text]
Die eingegebenen Octalzahlen werden in die
entsprechenden UNICODE-Zeichen umgewandelt.
Als Trennungszeichen zwischen den Zahlen sind
folgende Zeichen erlaubt: | , _ . - / ; , und
Leerzeichen. Bei Verwendung von Leerzeichen
sollten möglichst nur 1 Leerzeichen zwischen
den Zahlen verwendet werden (überzählige
Leerzeichen werden sonst als nicht erkannte
Zeichen behandelt).""" + "\n\n")
return ("### Octalzahlen zu Text\n"
"Die eingegebenen Octalzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und Leerzeichen. "
"Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen verwendet "
"werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
else:
se = ""
for s in seperator:
@@ -614,11 +583,11 @@ Zeichen behandelt).""" + "\n\n")
try:
ausz = int(eingabetext, 8)
except ValueError:
Ausgabe.insert(1.0, "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!\n",
"re")
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!"
else:
Ausgabe.insert(1.0, chr(ausz) + "\n")
return chr(ausz)
else:
ausgabetext = ""
txt = eingabetext.split(se)
atxt = ""
ignor = ""
@@ -629,66 +598,49 @@ Zeichen behandelt).""" + "\n\n")
ignor = ignor + str(z) + " "
else:
atxt = atxt + chr(az)
Ausgabe.insert(1.0, atxt + "\n")
Ausgabe.insert(1.0, "umgewandelte Zeichen:\n", "bu")
if ignor != "":
Ausgabe.insert(1.0, ignor + "\n")
Ausgabe.insert(1.0, "Achtung nicht erkannte Zeichen:\n", "re")
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n"
ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt
return ausgabetext
def asciitobin16():
eingabetext = Eingabe.get(1.0, END)
def ascii_to_bin16(eingabetext):
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Text zu Binärzahlen]
Der eingegebene Text wird in Binärzahlen mit
einer festgelegten Breite von 16bit (16 Zeichen)
umgewandelt. """ + "\n\n")
return ("### Text zu Binärzahlen\n"
"Der eingegebene Text wird in Binärzahlen mit einer festgelegten Breite von 16bit (16 Zeichen) "
"umgewandelt.")
else:
z = []
for i in eingabetext:
z.append("{:0>16b}".format(ord(i)))
Ausgabe.insert(1.0, ' '.join(z) + "\n")
return ' '.join(z)
def asciitobin8():
eingabetext = Eingabe.get(1.0, END)
def ascii_to_bin8(eingabetext):
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Text zu Binärzahlen]
Der eingegebene Text wird in Binärzahlen mit
einer festgelegten Breite von 8bit (8 Zeichen)
umgewandelt. """ + "\n\n")
return ("### Text zu Binärzahlen\n"
"Der eingegebene Text wird in Binärzahlen mit einer festgelegten Breite von 8bit (8 Zeichen) "
"umgewandelt.")
else:
z = []
for i in eingabetext:
if ord(i) > 255:
Ausgabe.insert(1.0,
"Sorry der Eingabetext enthält Zeichen,\nwelche sich nicht"
" mit 8 bit in binär darstellen lassen!\n")
return
return ("Sorry der Eingabetext enthält Zeichen,welche sich nicht mit 8 bit in binär darstellen "
"lassen!")
z.append("{:0>8b}".format(ord(i)))
Ausgabe.insert(1.0, ' '.join(z) + "\n")
return ' '.join(z)
def bintoascii():
def bin_to_ascii(eingabetext):
seperator = ("|,", "_", ".", "-", "/", ";", ",")
eingabetext = Eingabe.get(1.0, END)
eingabetext = eingabetext.rstrip()
if eingabetext == "":
Ausgabe.insert(1.0, """HILFE: [Binärzahlen zu Text]
Die eingegebenen Binärzahlen werden in die
entsprechenden UNICODE-Zeichen umgewandelt.
Als Trennungszeichen zwischen den Zahlen sind
folgende Zeichen erlaubt: | , _ . - / ; , und
Leerzeichen. Bei Verwendung von Leerzeichen
sollten möglichst nur 1 Leerzeichen zwischen
den Zahlen verwendet werden (überzählige
Leerzeichen werden sonst als nicht erkannte
Zeichen behandelt).""" + "\n\n")
return ("### Binärzahlen zu Text\n"
"Die eingegebenen Binärzahlen werden in die entsprechenden UNICODE-Zeichen umgewandelt. Als "
"Trennungszeichen zwischen den Zahlen sind folgende Zeichen erlaubt: | , _ . - / ; , und "
"Leerzeichen. Bei Verwendung von Leerzeichen sollten möglichst nur 1 Leerzeichen zwischen den Zahlen "
"verwendet werden (überzählige Leerzeichen werden sonst als nicht erkannte Zeichen behandelt).")
else:
se = ""
for s in seperator:
@@ -700,11 +652,11 @@ Zeichen behandelt).""" + "\n\n")
try:
ausz = int(eingabetext, 2)
except ValueError:
Ausgabe.insert(1.0, "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!\n",
"re")
return "Keine Zahl oder gültiges Trennzeichen (, ; . / - _ | oder Leerzeichen) erkannt!"
else:
Ausgabe.insert(1.0, chr(ausz) + "\n")
return chr(ausz)
else:
ausgabetext = ""
txt = eingabetext.split(se)
atxt = ""
ignor = ""
@@ -715,15 +667,16 @@ Zeichen behandelt).""" + "\n\n")
ignor = ignor + str(z) + " "
else:
atxt = atxt + chr(az)
Ausgabe.insert(1.0, atxt + "\n")
Ausgabe.insert(1.0, "umgewandelte Zeichen:\n", "bu")
if ignor != "":
Ausgabe.insert(1.0, ignor + "\n")
Ausgabe.insert(1.0, "Achtung nicht erkannte Zeichen:\n", "re")
ausgabetext += "_Achtung nicht erkannte Zeichen:_ \n"
ausgabetext += ignor + " \n"
ausgabetext += "_umgewandelte Zeichen:_ \n"
ausgabetext += atxt
return ausgabetext
'''
def zahlwortsuche_de():
eingabetext = Eingabe.get(1.0, END)
eingabetext = eingabetext.rstrip()
if eingabetext == "":