Rot-n Algorithmus

wackel_peter

Level-1
Beiträge
54
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,
ich würde gerne einen eingegeben String unkenntlich machen und bin auf der Suche nach einen Code-Snippet für einen Rot-n Algorithmus für die Ascii-Zeichen von 33 bis 126.
Bisher habe ich hier eine Implementierung( in ST) des Rot47, nun würde ich aber gerne beliebige andere Verschiebungen umsetzten.

Grüße,
Peter
 
Na wenn du schon eine Implementierung von Rot47 hast sollte es doch wohl ein leichtes sein die 47 durch ein variables n zu ersetzen. Du musst nur ein paar Checks einbauen, die sicherstellen das [ASCII Code Zeichen] + n immer zwischen 33 und 126 liegt. Aber auch die sollten ja in Rot47 schon irgendwie realisiert sein.

Wenn du bei Null anfangen willst, würde ich dir empfehlen mit einem Zeiger in einer FOR-Schleife Zeichen für Zeichen durch deinen Eingangs-String zu wandern. In jedem Schritt nimmst das Zeichen auf dem der Zeiger steht, rechnest deinen Offset drauf und hängst das Ergebnis an den Ausgangsstring.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
ich hab die ganze Geschichte jetzt mal soweit in Codesys 3.5 implementiert.
Nun muss das Ganze aber auch unter 2.3 laufen und dort gibt es nun die ersten Probleme.


Meine Array[0..127] of Strings mit ASCII Zeichen wird als nicht deklariert erkannt. Es sieht wie folgt aus:

Code:
VAR CONSTANT
	ascii : ARRAY [0..127] OF STRING(1):= 33(' '),'!', '"', '#', '$$', '%', '&', '$'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?','@', 'A', 'B','C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'R', 'S', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~';
END_VAR

Wo hat sich da der Fehlerteufel oder ehr Kompatibilitätsfehler eingeschlichen?
 
Ich sehs. Der Array ist zu groß. Ist ja 0 bis 126 m)

Ich probiere es morgen mal auf ner SPS aus und werde das Ergebnis bzw den Quellcode (falls erfolgreich) hier posten.
 
Zurück
Oben