Hallo,
ich bin neu hier und habe mich angemeldet, da ich ein Problem mit einem Delphi-Programm habe, welches ich momentan bearbeite.
Und zwar geht es hierbei darum, einen Text, der in ein Memo-Feld eingegeben wird, per Skytalaverschlüsselung zu verschlüsseln (Dabei soll selbst gewählt werden, wie viele Zeilen verwendet werden sollen).
Beispiel:
Hallo ich bin ein Testtext.
Wird zu (Leerzeichen durch * ersetzt; Code = 5):
H*bistaiint.lcn*t*lh*Te*o*eex*
In meinem geschriebenen Programm kommt jedoch nur folgendes heraus:
H*bistaiint.lcn*t
D.h. die letzten 13 Zeichen fehlen.
Hier nun einmal der Programmcode:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| var text, verschluesselt: string; schluessel, i, k, laenge, key, ascii: integer; buchstabe: char; begin text := Memo1.Text; schluessel := StrToInt(Edit1.Text); verschluesselt := '';
laenge := length(text);
if laenge MOD schluessel = 0 then key := (laenge DIV schluessel) else key := (laenge DIV schluessel) + 1;
for i := 1 to key do for k := 0 to schluessel do begin buchstabe := text[(k*schluessel)+i];
ascii := ord(buchstabe); if ascii = 32 then ascii := 42;
buchstabe := chr(ascii);
if buchstabe = ' ' then buchstabe := '*';
verschluesselt := verschluesselt + buchstabe; Memo2.Text := verschluesselt; end; end; |
Im Anhang die Exe-Datei (als Zip)
Ich hoffe, jemand kann mir helfen.
Liebe Grüße,
Windkind