![]() |
Text verschlüsseln
Hallo,
Ich habe ein Programm geschrieben das einen Text verschlüsseln soll:
Delphi-Quellcode:
Der verschlüsselte Text soll dann in hauptlabel3.caption ausgegeben werden, es wird aber nur irgendein schwachsinn geschireben, was ist da falsch?
text2:='Das ist ein Testtext der verschlüsselt wird.';
symbole1:=')ZDhSCfPwVaW+J>-rB[RF$UNg|'; for i:=1 to 100 do begin for x:=1 to 26 do if text2[i]=chr(x+97) then hauptlabel3.caption:=hauptlabel3.caption + symbole1[x]; end; end; A soll ) sein B soll Z sein etc. Ach ja statt i:=1 to 100 will ich i:=1 to länge(text2) schreiben, wie muss ich das schreiben? Danke für eure Hilfe! Ferby |
Re: Text verschlüsseln
Zitat:
Zitat:
|
Re: Text verschlüsseln
Hi wass für einen code?
Das steht bei mir in symbole1:=')ZDhSCfPwVaW+J>-rB[RF$UNg|'; Das erste Zeichen soll a sein also ) das zweite soll b sein also Z usw. Was brauchst du da noch? |
Re: Text verschlüsseln
Hallo,
habs schon selbst gelöst |
Re: Text verschlüsseln
Woher soll ich wissen dass deine "Symbole" die Zeichen zum Ersetzen sind, wenn du schreibst "A" soll zu "Z" werden?
Und wie hast du es gelöst? andere haben eventuell mal das gkleiche oder ein ähnliches Problem. |
Re: Text verschlüsseln
Hi,
So:
Delphi-Quellcode:
Das wird nicht die perfekte Lösung sein, aber diese Quelltext ist nur ein Ausschnitt meines Programmes.
symbole1:=')ZDhSCfPwVaW+J>-rB[RF$UNg|';
text2:='Das ist der Text'; for i:=1 to length(text2) do begin for x:=1 to 26 do if text2[i]=chr(x+96) then text3:=symbole1[x]; for x:=1 to 26 do if text2[i]=chr(x+64) then text3:=symbole1[x]; hauptlabel3.caption:=hauptlabel3.caption + text3; text3:=''; end; |
Re: Text verschlüsseln
Noch kürzer gehts so:
Delphi-Quellcode:
symbole1:=')ZDhSCfPwVaW+J>-rB[RF$UNg|';
text2:='Das ist der Text'; for i:=1 to length(text2) do begin for x:=1 to 26 do if (text2[i]=chr(x+96)) or (text2[i]=chr(x+64)) then hauptlabel3.caption:=hauptlabel3.caption + symbole1[x] end; |
Re: Text verschlüsseln
Die zweiten for Schleifen kannst dir auf jeden Fall sparen ...
Delphi-Quellcode:
var c : char;
symbole1:=')ZDhSCfPwVaW+J>-rB[RF$UNg|'; text2:='Das ist der Text'; for i:=1 to length(text2) do begin c := text2[i]; if c in ['A'..'Z'] then c := symbole1[Ord(c) - Ord('A') + 1]; if c in ['a'..'z'] then c := symbole1[Ord(c) - Ord('a') + 1]; hauptlabel3.caption:=hauptlabel3.caption + c; end; |
Re: Text verschlüsseln
Es gibt einen Befehl in der Stringbearbeitung, mit dem du alle Zeichen auf kleine Buchstaben setzten kannst, nennt sich
![]()
Delphi-Quellcode:
So ist's etwas schneller und imho schöner;For i:=0 to length(text) do ordx:= ord( lowercase(text[i])) ); // oedx ist der Ascii-Wert des Buchstaben dec(ordx,64); CodeBuchstabe:= symbole1[ordx]; end; // Lowercase verträgt keine Umlaute wie ä,ö,ü |
Re: Text verschlüsseln
Hi,
Ich finde meine Variante einfacher, lieber ein wenig längerer Quelltext als das ich mich nach einer Woche nicht mehr in meinen eigenen Programm auskenn :-) Aber so wie du es machst gehts natürlich auch, geschmackssache. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz