Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   string zu Zahlen verschlüsseln und als Integer ausgeben (https://www.delphipraxis.net/173648-string-zu-zahlen-verschluesseln-und-als-integer-ausgeben.html)

muhael 8. Mär 2013 18:33

string zu Zahlen verschlüsseln und als Integer ausgeben
 
Hey bin noch etwas neu in Delphi und stehe vor einem Problem:
ich möchte einen Text aus edit1 so verschlüsseln das die Buchstaben nur Zahlen sind
d.h. das a ist die 1, b die 2 und das A ist 27, und B ist 28.

mein lösungsansatz ging über ein Array aber wenn ich nun im Editfeld abc eingebe spuckt mein programm 99 aus anstatt 123



hier das Array;
Delphi-Quellcode:
 const
clientname : array[1..58] of string = ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','Ü','Ö','Ä','ü','ä','ö');

und hier der procedure
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var text:string;
ende:integer;
i:integer;
begin
text:=edit1.Text;
for i:=0 to length(text) do
begin
ende:= Ord(text[i]);
end;
edit2.Text:=inttostr(ende);
end;
was noch besser wäre wenn ich es wieder entschlüsseln will das er zwischen jeder abgeschlossenen zahl ein komma oder irgendwas setzt damit das prog es auch entschlüsseln kann

UND ja ich habe die Suche benutzt und ja auch etwas länger habe aber nichts vergleichbares gefunden O.o nur die cäsar chiffre

lg

Neutral General 8. Mär 2013 18:41

AW: string zu Zahlen verschlüsseln und als Integer ausgeben
 
Deine "Verschlüsselung" besteht darin den Ordinalwert des letzten Chars im String zu nehmen.
So kann das nicht funktionieren.

Und du benutzt dein Verschlüsselungs-Array gar nicht.
Das macht irgendwie alles keinen Sinn..

Uwe Raabe 8. Mär 2013 18:41

AW: string zu Zahlen verschlüsseln und als Integer ausgeben
 
Wo soll ich anfangen...

- dein Array geht von 1 bis 58, aber deine Schleife beginnt bei 0 (Bereichsprüfung einschalten!)
- du weist bei jedem Schleifendurchlauf die Ordnungszahl des Buchstaben der Variable ende zu. Dabei überschreibst du den jeweils vorigen Wert. Nach dem letzten Durchlauf hat ende den Ordinalwert von ö.
- du kannst einen hinreichend langen String nicht in einer Integer-Variable verschlüsseln und davon ausgehen, daß sich das wieder entschlüsseln lässt.

p80286 9. Mär 2013 09:44

AW: string zu Zahlen verschlüsseln und als Integer ausgeben
 
Nehmen wir einmal an, Dein Programm würde funktionieren, wie würdest Du dann 4358 übersetzen?

So wie Du es vor hast, kann es nicht funktionieren, da es mehr Buchstaben als Ziffern gibt.
Wenn Du unbedingt Buchstaben als Zahlenkombination ausgeben willst, mußt die z.B. immer mit 2Stelligen Zahlen arbeiten (02095408....) oder einen Trenner nutzen (2,9,54,8...).

Oder war Deine Intention eher einen Hash-Wert zu erzeugen?

Gruß
K-H

Bjoerk 9. Mär 2013 10:14

AW: string zu Zahlen verschlüsseln und als Integer ausgeben
 
Könnte auch ein PolyBios gemeint sein? Wenn man z.B. die Zeichen #32..#255 verschlüsseln möchte, kreiert man sich ein String (Chiffre) aus dienen 224 Zeichen, mischt ihn kräftig durch und schreibt ihn als Konstante oder function ins Programm.

Die Verschlüsselungszeichen sind dann einfach die Indices dieses Chiffre als dreistellige Zahl. Die Entschlüsselung sind die Zeichen, die an den Stellen Index im Chiffre stehen.

Beispiel:
Chiffre = '1dX2Üß?a A .. X‘
Text = '1X'
Encrypt = 001224
Decrypt = Chiffre[001] + Chiffre[224]

Da man die Nullen zum Auffüllen benötigt, muß das Chiffre bei Index 1 beginnen was beim String in Delphi ja automatisch so ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz