Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Text verschlüsseln (https://www.delphipraxis.net/28176-text-verschluesseln.html)

ferby 20. Aug 2004 13:35


Text verschlüsseln
 
Hallo,

Ich habe ein Programm geschrieben das einen Text verschlüsseln soll:

Delphi-Quellcode:
    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;
Der verschlüsselte Text soll dann in hauptlabel3.caption ausgegeben werden, es wird aber nur irgendein schwachsinn geschireben, was ist da falsch?
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

Luckie 20. Aug 2004 13:39

Re: Text verschlüsseln
 
Zitat:

Zitat von ferby
Der verschlüsselte Text soll dann in hauptlabel3.caption ausgegeben werden, es wird aber nur irgendein schwachsinn geschireben, was ist da falsch?
A soll ) sein B soll Z sein etc.

Schwer zu sagen ohne den Code, wie du verschlüsselst. Vermutung irgendwo tauchen im String Steuerzeichen auf.
Zitat:

Ach ja statt i:=1 to 100 will ich i:=1 to länge(text2) schreiben, wie muss ich das schreiben?
]oh]length[/oh].

ferby 20. Aug 2004 13:44

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?

ferby 20. Aug 2004 13:49

Re: Text verschlüsseln
 
Hallo,

habs schon selbst gelöst

Luckie 20. Aug 2004 14:01

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.

ferby 20. Aug 2004 14:45

Re: Text verschlüsseln
 
Hi,

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) 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;
Das wird nicht die perfekte Lösung sein, aber diese Quelltext ist nur ein Ausschnitt meines Programmes.

ferby 20. Aug 2004 14:49

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;

Gruber_Hans_12345 20. Aug 2004 14:51

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;

Nikolas 20. Aug 2004 14:54

Re: Text verschlüsseln
 
Es gibt einen Befehl in der Stringbearbeitung, mit dem du alle Zeichen auf kleine Buchstaben setzten kannst, nennt sich Delphi-Referenz durchsuchenlowercase Damit sparst du dir eine der beiden Schleifen. Dann kannst du das ganze etwas schneller machen, indem du nicht alle 26 Buchstaben ausprobierst, sonder mit ord() die gleich den Ascii-Wert eines Buchstabens holst. Dann kannst du noch 64 oder 96 anziehen und weisst den Buchstaben zum Ersetzten:
Delphi-Quellcode:
 
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 ä,ö,ü
So ist's etwas schneller und imho schöner;

ferby 20. Aug 2004 14:56

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.
Seite 1 von 2  1 2      

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