Thema: Delphi Hilfe:Caesar-Verfahren

Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

Re: Hilfe:Caesar-Verfahren

  Alt 10. Jan 2005, 18:12
Zitat von HelmHut:
...
x -> y -> z -> (und dann soll wieder a kommen)a -> b -> c
Also aus dem x soll ein c werden und KEIN Sonderzeichen
...
Kann mir jemand das helfen?
Dann werd ich doch eine Lösung geben
Delphi-Quellcode:
...
function decode(s: string): string;
var
  i: Integer;
begin
  for i := 1 to Length(s) do
  begin // Für alle Buchstaben
    if UpCase(s[i]) in ['A'..'W'] then
    begin // Wenn Buchstabe zwischen A und W ist
      Inc(s[i],3); // Um 3 Zeichen nach rechts verschieben
    end
    else
    begin
      if UpCase(s[i]) in ['X'..'Z'] then
      begin // Wenn Buchstabe zwischen X, Y oder Z ist
        Dec(s[i],23); // Um 23 Zeichen nach links verschieben
                      // X = A, Y = B, Z = C
      end;
    end;
  end;
  Result := s; // Verschlüsselten Text zurückgeben
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Text := decode(Memo1.Lines.Text);
end;
...

oder

Delphi-Quellcode:
...
function decodeBuchstabe(c: Char): Char;
begin
  case c of
    'a' : Result := 'd';
    'b' : Result := 'e';
    'c' : Result := 'f';
    'd' : Result := 'g';
    'e' : Result := 'h';
    'f' : Result := 'i';
    'g' : Result := 'j';
    'h' : Result := 'k';
    'i' : Result := 'l';
    'j' : Result := 'm';
    'k' : Result := 'n';
    'l' : Result := 'o';
    'm' : Result := 'p';
    'n' : Result := 'q';
    'o' : Result := 'r';
    'p' : Result := 's';
    'q' : Result := 't';
    'r' : Result := 'u';
    's' : Result := 'v';
    't' : Result := 'w';
    'u' : Result := 'x';
    'v' : Result := 'y';
    'w' : Result := 'z';
    'x' : Result := 'a';
    'y' : Result := 'b';
    'z' : Result := 'c';
    'A' : Result := 'D';
    'B' : Result := 'E';
    'C' : Result := 'F';
    'D' : Result := 'G';
    'E' : Result := 'H';
    'F' : Result := 'I';
    'G' : Result := 'J';
    'H' : Result := 'K';
    'I' : Result := 'L';
    'J' : Result := 'M';
    'K' : Result := 'N';
    'L' : Result := 'O';
    'M' : Result := 'P';
    'N' : Result := 'Q';
    'O' : Result := 'R';
    'P' : Result := 'S';
    'Q' : Result := 'T';
    'R' : Result := 'U';
    'S' : Result := 'V';
    'T' : Result := 'W';
    'U' : Result := 'X';
    'V' : Result := 'Y';
    'W' : Result := 'Z';
    'X' : Result := 'A';
    'Y' : Result := 'B';
    'Z' : Result := 'C';
  else
    Result := c;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  s := Memo1.Lines.Text;
  for i := 1 to Length(s) do
  begin
    s[i] := decodeBuchstabe(s[i]);
  end;
  Memo1.Lines.Text := s;
end;
...
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat