Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#24

Re: String mit Hilfe einer Schleife zerteilen und auslesen

  Alt 25. Aug 2007, 20:39
Hallo cRayZo,

immer wenn ich in diesem Thread das Wort Gleitkommafehler lese, dann frage ich mich, warum du überhaupt mit der Gleitkomma-Division arbeitest, schließlich ist deine ganze Ver- und Entschlüsselung doch ein reiner Ganzzahl-Algorithmus. Hier bekommst du noch eine Funktion Decode(), die den Ansatz von Hawkeye demonstriert. An der Funktion Encode() kannst du dich mal versuchen.

Delphi-Quellcode:
uses
  Types; // TIntegerDynArray

const
  Alphabet
    = 'abcdefghijklmnopq<rstuvwxyz!"§$%&/()=?*+#-'
    + '_:.,; ABCDEFGHIJKLMNOPQ>RSTUVWXYZ'
    ;
  Chiffre
    = '0;207:3|8;108:20|2;1342:67|3;339:16|3;2019:42|0;2397:47|'
    + '0;1260:84|0;116:29|9;189:36|7;1543:32|6;5802:84|7;1597:3'
    + '0|1;2177:32|4;1660:24|8;1304:27|4;718:14|8;1772:28|7;505'
    + '1:97|4;4668:88|'
    ;

{$I Proc.ExtractNumbers.pas}

function Decode(ida: TIntegerDynArray): string;
var
  i, n: Integer;
begin
  SetLength(Result, Length(ida) div 3);
  for i := 1 to Length(Result) do
  begin
    n := Pred(i) * 3;
    Result[i] := Alphabet[(ida[n + 1] - ida[n]) div ida[n + 2]];
  end;
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  ida: TIntegerDynArray;
begin
  ExtractNumbers(Chiffre, ida);
  ShowMessage(Decode(ida));
end;
Freundliche Grüße
  Mit Zitat antworten Zitat