![]() |
#70^2^!^'^%#58 <- Wieso funktioniert das?
Bevor jemand meckert, das IST ein aussagekräftiger Titel... :mrgreen: (War doch kein guter Titel... :cry: )
Ich bin in einem älteren Beitrag über die Signatur von ![]() #65^,^3^/#44#32^+^!^.^.#32^-^)^2#32^%^)^.^%^2#32^%^2^+^,#228^2^%^.#44#32^7^!^2 ^5^-#32^$^!^3#32^$^!#32^)^2^'^%^.^$^7^)^%#32#80^/^)^.^4^%^2^-#228#223^)^'#32^'^%^(^4#32^-^)^4#32^$^%^-#32#83^4^2^)^.^'#63 Um "echte" Strings in die Form da oben umzuwandeln, habe ich mir mal folgende Funktion gebastelt:
Delphi-Quellcode:
Ich bin da mehr oder weniger durch probieren hingekommen, kann mir also jemand erklären, was dahintersteckt? (Die Form #97... ist mir schon klar, aber mit dem ^$ = d werde ich nicht fertig.)
function StringToAya(S: String): String;
var i: Integer; begin Result := ''; for i := 1 to Length(S) do if (Ord(S[i]) >= 97) and (Ord(S[i]) <= 122) then Result := Result + '^' + Chr(Ord(S[i]) - 64) else Result := Result + '#' + IntToStr(Ord(S[i])); end; Gruß Wormid |
Re: #87^)^%#32^&^5^.^+^4^)^/^.^)^%^2^4#32^$^!^3#63
Das sind einfach nur Zeiger auf die jeweiligen Ascii-Zeichen, sonst nichts.
Und so ne aufwendige Prozedur brauchst auch nicht, eine einfache Message reicht auch!!
Code:
ShowMessage(#65^,^3^/#44#32^+^!^.^.#32^-^)^2#32^%^)^.^%^2#32^%^2^+^,#228^2^%^.#44#32^7^!^2^5^-#32^$^!^3#32^$^!#32^)^2^'^%^.^$^7^)^%#32#80^/^)^.^4^%^2^-#228#223^)^'#32^'^%^(^4#32^-^)^4#32^$^%^-#32#83^4^2^)^.^'#63);
|
Re: #87^)^%#32^&^5^.^+^4^)^/^.^)^%^2^4#32^$^!^3#63
Also im moment raff ich davon mal überhaupt nichts
Wie geht das? Die Proc von Wormid versteh ich ja einigermaßen aber das von DanielB raff ich irgendwie überhaupt nicht :wiejetzt: |
Re: #87^)^%#32^&^5^.^+^4^)^/^.^)^%^2^4#32^$^!^3#63
Moin,
die Prozedur ist ja auch für den umgekehrten Weg: Klartext -> Zeiger! Das es sich irgendwie um Zeiger handelt, habe ich mir gedacht, aber nachvollziehen kann ich es nicht. Ascii: 97 = a bei der Variante oben: ^! = a und Ascii 33 = ! ... Wie passt das also bitte zusammen? :gruebel: @General: Was ist an dem ShowMessage so kompliziert? :mrgreen: |
Re: #87^)^%#32^&^5^.^+^4^)^/^.^)^%^2^4#32^$^!^3#63
Also das sind Pointer auf die jeweiligen Chars, und die Showmessagefkt zeigt die als Buchstaben an mehr nicht, Showmessage ist übrigends eine fkt, die Delphi selbst bietet ;)
Edit: Mist Wormid war schneller ;) |
Re: #87^)^%#32^&^5^.^+^4^)^/^.^)^%^2^4#32^$^!^3#63
An dem ShowMessage an sich nichts...Nur ich hab mich gefragt warum der den String anzeigt..Hab Pointer irgendwie noch nie so wirklich gerafft
|
Re: #87^)^%#32^&^5^.^+^4^)^/^.^)^%^2^4#32^$^!^3#63
Zitat:
:warn: Du tust uns allen einen Gefallen, wenn Du diesen Titel rasch noch mal editierst. (Noch kannst Du es selber. :wink:). |
Re: #87^)^%#32^&^5^.^+^4^)^/^.^)^%^2^4#32^$^!^3#63
Aber wieso ist ein '!' (ordinal 33) ein Pointer auf 'a'... Steht am Anfang im Memory die Ascii-Tabelle? Und wenn ja, warum dann nur die Kleinbuchstaben? Oder kann ich auf die Art da oben nur nicht an die großen dran?
:?: |
Re: #70^2^!^'^%#58 <- Wieso funktioniert das?
Verwende diesen Code
Delphi-Quellcode:
ändere das Zeichen hinter dem "^" und wirf einen Blick auf eine
var
myString: string; myChar: Char; begin myString:= #65^0; myChar:= myString[2]; showmessage(Format('String: "%s"; Zweites Zeichen: "%s"; ASCII: %d', [myString, myChar, Ord(myChar)])); end; ![]() |
Re: #70^2^!^'^%#58 <- Wieso funktioniert das?
Hallo Phlux hallo Daniel,
wie kann es sich um Pointer handeln, wenn
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 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