![]() |
Umwandlung String in Zahl
Hallo
Ich hab ne Frage. Wollte wissen, ob es ne einfach Möglichkeit gibt, Buchstaben in Zahlen umzuwandeln? Und zwar will ich, dass BEISPIELSWEISE das Wort "Hallo" in "45661" umgewandelt wird! Gibt es dazu ne einfache Möglichkeit? Liebe Grüße Pascal |
Re: Umwandlung String in Zahl
Hi, nach welchem Schema soll die Zahl denn Aufgebaut werden?
|
Re: Umwandlung String in Zahl
Wäre "Hallo" 81121216 wäre das bestimmt einfacher zu machen :)
|
Re: Umwandlung String in Zahl
Also eigentlich will ich, dass jeder Buchstaben des Alphabets durch zwei Zaheln ersetzt wird. Mit einstelligen Zahlen geht das schlecht, weil es ja insgesamt 26 Buchstaben gibt.
Ich will sozusagen ein Wort in Zahlen verschlüsseln. Im Programm, das ich geschrieben habe, werden nur die Buchstaben verschobn. Jetzt wärs halt noch gut, wenn die Buchstaben in Zahlen umgewandelt werden. Also "W" --> 76 "E" --> 33 "I" --> 34 "H" --> 13 "N" --> 29 "A" --> 89 "C" --> 76 "H" --> 13 "T" --> 46 "E" --> 33 "N" --> 29 Das Wort "WEIHNACHTEN" würde - rein zahlenmäßig - verschlüsselt also so aussehen: 7633341329897613463329 |
Re: Umwandlung String in Zahl
Hi!
Also, eine einfache Funktion um Zeichen eines Strings zu codieren gibt es meines Wissens nach nicht. :( Viel eher musst du mit einer Schleife manuell die einzelnen Buchstaben konvertieren. |
Re: Umwandlung String in Zahl
Ich würde es so ähnlich lösen, ist jedoch nicht sonderlich performant):
Delphi-Quellcode:
;
var
Form1: TForm1; myArray: array[1..26] of integer = (23, 54, 64, 12, 57, 78, 23, 21, 76, 68 ...; implementation {$R *.dfm} function MakeChaos(Input: string): string; var i: integer; Return: string; begin Return := ''; for i := 1 to Length(Input) do begin Return := Return + IntToStr(myArray[Ord(Input[i]) - 32 - 64]); end; Result := Return; end; |
Re: Umwandlung String in Zahl
Statt array[1..26] würde ich array['a'..'z'] verwenden, dass macht das ord überflüssig
|
Re: Umwandlung String in Zahl
Nur möchte er ja nicht
1 = A 2 = B :gruebel: |
Re: Umwandlung String in Zahl
Also das ist doch schon mal was. Kann jetzt ja mal rumbasteln! Wenn ich - bestimmt wieder - probleme habe, meld ich mich wieder.
Trotzdem danke im vorraus :-) |
Re: Umwandlung String in Zahl
Also das klappt alles wunderbar!
Jetzt hab ich aber noch was. Wie würde denn dann die Umkehrfunktion aussehen? Die brauch ich ja, ums wieder zu entschlüsseln! EDIT: Was passiert wenn ich "hallo du" eingeben? Also ich meine, das Leerzeichen wird zu "0", aber wie bekomm ich leerzeichen zb. als "99" ausgegeben? |
Re: Umwandlung String in Zahl
Ord() -> Chr()
|
Re: Umwandlung String in Zahl
Zitat:
Zitat:
Delphi-Quellcode:
würde dann das schönere
Return := Return + IntToStr(myArray[Ord(Input[i]) - 32 - 64]);
Delphi-Quellcode:
// edit:
Return := Return + IntToStr(myArray[Input[i]]);
Vorher müsste man natürlich noch in Kleinbuchstaben umwandeln, ich glaube die Funktion heißt LowerCase, aber bin mir da jetzt nicht ganz sicher. |
Re: Umwandlung String in Zahl
Das bin ich wieder!
Wär ja mal schön, wenn ich auch mal was alleine könnte :-( Ich bekomm das Umkehren nicht hin :-( |
Re: Umwandlung String in Zahl
Hallo
Also ich hab jetzt die ganze zeit versucht was zu basteln, aber ich bekomm die Umkehrfuntion nicht hin! :-( kann mir bitte jemand helfen??????????? |
Re: Umwandlung String in Zahl
Prinzip:
Setlength(Result, length(eingang) shr 1); while Length(eingang) > 0 do begin Vergleiche die ersten beiden Zeichen mit deiner Tabelle Füge das passende Zeichen in den Ergebnis-String ein Lösche die beiden ersten Zeichen end; |
Re: Umwandlung String in Zahl
Gott sei Dank! Ich hab jetzt endlich einen Weg gefunden!
Leider ist da noch 1(!) kleines Problem: Ich hab ne Schleife die so aussieht
Delphi-Quellcode:
Die Schleife soll nun aber nicht bis length(z) laufen, sondern bis zur Hälfte von length(z), also:
for i:= 1 to length(z) do
Delphi-Quellcode:
Leide rgeht das so nicht! Kann mir jemand helfen?
for i:= 1 to length(z)/2 do
|
Re: Umwandlung String in Zahl
warum nur bis zur hälfte?
du könntest ein "div" statt dem "/" verwenden. |
Re: Umwandlung String in Zahl
oder vielleicht ein round(length(z)/2)?
|
Re: Umwandlung String in Zahl
Naja, ich habs nun auch so gelöst und so lang es läuft, solls eigentlich egal sein!
Also nochmals danke, das Problem wurde gelöst! Gruß huefte |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:20 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