Text in Zahlen umwandeln

Hallo,
auf dem Calliope möchte ich eine Verschlüsselte Nachrichte an einen anderen versenden. Die Idee ist, dass ein Text versendet wird, der dann automatisch in Zahlen umgewandelt wird und wenn der andere Calliope den Text dann empfängt die Zahlen wieder in den ursprünglichen Text umgewandelt werden,.Jedoch weiß ich nicht wirklich, wie man sowas programmiet.
Ich bin noch ein Anfänger und würde mich über jede Hilfe freuen.

Die Übertragungsmöglichkeiten mit Bluetooth sind sehr beschränkt. Du kannst eine Zahl senden oder einen Text oder ein Wertepaar aus Text und Zahl. Die Länge des Text in einer Bluetooth Nachricht ist begrenzt, ich glaube auf 18 Zeichen.

Es ist einfach einen Text bis 18 Zeichen zu senden. Wenn du unbedingt verschlüsseln willst, wäre es besser wieder einen Text heraus zu bekommen, der auch Ziffern enthalten kann. Der geht dann mit einem Mal zu senden.

Sonst bekommst du einen Haufen Zahlen, die einzeln zu senden sind und der Empfänger muss die erst mal wieder zusammen bauen. Man kann kein Array senden.

Bei den Blöcken unter Text findest du die Umwandlung von ASCII Code in Text: Text aus Zeichencode.

Für die Umwandlung eines Buchstaben in ASCII Code finde ich keinen Block. Das würde ich für das Verschlüsseln aber dringend brauchen. Das ist nur direkt mit JavaScript möglich: TextVariable.charCodeAt().

Lutz

1 „Gefällt mir“

Hallo Fanta,
Lutz hat dir ja schon geschrieben, dass die Länge der Nachricht begrenzt ist (wusste ich als Calliope-Newby noch nicht - danke!).
Aber für die Rückverwandlung einer ASCII-Code-Zahl gibt es eine Funktion im Matheblock.
Was mir in NEPO fehlt, ist eine Funktion, die die Länge des Textes angibt.
Für Texte mit einer festgelegten Länge habe ich mal ein Beispiel geschrieben (die bekannte Länge nehme ich für die Schleifenbedingung). Darin gibt es noch keine Übertragung. Nur den Schritt: Text zu Zahlen und wieder zurück.

Der Text kann außer Buchstaben auch Zahlen oder sonstige Zeichen enthalten.

VG Naila

Hallo Naila,

erstmal vielen vielen Dank für deine Antwort.
Könntest du das auch auf makecode.calliope programmieren? Mit dem Programm komme ich nicht richtig klar. Wenn nicht, ist es natürlich auch kein Problem.
VG Fanta

Hallo Fanta,
ich habe mich bei der Antwort von Lutz verlesen, welche Funktion er vermisst. :upside_down_face:
Als ich in makecode geschaut habe, habe ich nämlich auch keinen Block für die Ermittlung des Ascii-Codes gefunden. Das müsste man dann wohl mit viel Aufwand selber als Funktion programmieren oder eben, wie Lutz schreibt, direkt im java-code…

In Open Roberta geht es aber wirklich einfach. Vielleicht kannst du dir ja doch ein Umswitchen vorstellen?

Gruß Naila

Auf JavaScript umschalten und den Code rein kopieren. Wird sogar in den Blöcken angezeigt.

function charCodeAt (Text: string, index: number) {
return Text.charCodeAt(index)
}

1 „Gefällt mir“

Hallo Lutz,
danke für die Funktion.
Ich hatte mich gestern zum ersten Mal in makecode probiert und wusste von anderen Beiträgen im Forum, dass man da dirket in java script programmieren kann, habe mich aber noch nicht gleich getraut (einige schrieben von Problemen bei der Anzeige in den Blöcken). Daher macht ein erstes perfekt funktionierendes Beispiel „Lust auf mehr“, auch in dieser Richtung viel auszuprobieren.

VG Naila

Hallo Naila,

ich bin kein Fan von JavaScript - aber von Binärzahlen. Und da habe ich zur Umwandlung von Nullen und Einsen (Lochstreifencode) die folgende Funktion gesucht:

function parseInt2 (Binärcode: string) {
return parseInt(Binärcode,2)
}

Außer diesen zwei Funktionen habe ich in MakeCode eigentlich alles gefunden. Es wurde auch in den letzten Jahren bedeutend weiter entwickelt. Vor allem auf die (blauen) selbst definierbaren Funktionen mit Parametern und Rückgabewert kann ich nicht mehr verzichten.

Ich wünsche mir in den Funktionen noch lokale Variablen, die nur innerhalb der Funktion gültig sind (so wie die Parameter).

Lutz

Toller Tipp. Danke.
Gruß Naila