Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Verschlüsselung... (https://www.delphipraxis.net/160465-verschluesselung.html)

katika90 14. Mai 2011 16:22

Verschlüsselung...
 
Hay Community,
ich möchte mit delphi ein kleines Verschlüsselungsprogramm erstellen...
es gibt ein Edit Feld(Text), ein TextLabel(TLCode) und ein Button(BtCode):

in dem Edit feld kann man ein wort zb. hallo eingeben, wenn man auf den Button klickt soll nun das Wort in dem Label ausgegeben werden, aber jeder einzelne buchstabe soll um einen verschoben sein (-> ibmmp).

Mein Ansatz war:
Delphi-Quellcode:
procedure TFmKrypto.BtCodeClick(Sender: TObject);
   var c,c2 : char; i,i2: integer;
   begin
   c:='a'
   i2:=1+ord(c);
   c2:=chr(i2);
   TlCode.caption:=c2;
   end;
Problem ist nun das der Text im Edit Feld string ist, aber ich char genutzt habe, weil "i2=ord(c)" sonst nicht kompetibel ist...
kann mir jemand eine möglichst einfache lösung geben?

Danke im Vorraus
Katika

DelphiSecurity 14. Mai 2011 16:46

AW: Verschlüsselung...
 
String in Char umwandeln? :gruebel:

DS :thumb:

s.h.a.r.k 14. Mai 2011 16:55

AW: Verschlüsselung...
 
Nutze eine for-Schleife und gehe jedes einzele Zeichen des eingebenen Strings durch. Strings kann du wie ein Array behandeln, also mit einem Index auf jedes Zeichen zugreifen. Du musst hier aber aufpassen, denn das erste Zeichen hat den Index 1 und nicht 0. Beispiel:
Delphi-Quellcode:
var
  S : String;
  C : Char;
begin
  S := 'Delphi';
  C := S[3];
  // In C steht nun das "l"
end;

Wolfgang Mix 14. Mai 2011 19:21

AW: Verschlüsselung...
 
Vlt. interessiert dich auch dies:
http://delphi.zsg-rottenburg.de/delp...rzeichniskrypt

DeddyH 15. Mai 2011 09:12

AW: Verschlüsselung...
 
Ich würde das etwa so angehen:
Delphi-Quellcode:
function SimpleCrypt(const PlainText: string): string;
var
  i: integer;
  c: char;
begin
  (* Länge des Ergebnisses auf die des Eingangsstrings setzen *)
  SetLength(Result, Length(PlainText));
  (* nun zeichenweise durchgehen *)
  for i := 1 to Length(PlainText) do
    begin
      (* Zeichen an aktueller Position ermitteln *)
      c := PlainText[i];
      (* die Berechnung des neuen Wertes überlasse ich Dir *)
      (* berechnetes Zeichen an aktuelle Ergebnisposition schreiben *)
      Result[i] := c;
    end;
end;

himitsu 15. Mai 2011 09:25

AW: Verschlüsselung...
 
Wobei ich soeine Funktion auf ein bestimmtes Format festlegen würde.
> Ansi oder Unicode, bzw. zwei Überladene Versionen

Was bei einer Umstellung des Strings/Chars und damit mit den Rechenergebnissen passieren würde, kann sich ja jeder ausrechnen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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