Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Von Symbol ins Integer?


Gottdrak99 - Fr 12.09.03 18:39
Titel: Von Symbol ins Integer?
hab kleines Problem und zwar hab ich neinen Wert rausgekriegt, der aber immer in string als Symbol angezeigt wird

Programm zeigt Buchstabe 'b' in Hex würde das '$62' sein und wenn man das noch ins Dez umwandelt '98'

also meine Frage, wie kann man von buchstabe den hex code rauskriegen, weil von hex nach dez ists ja einfach zu umwandeln


Delete - Fr 12.09.03 19:52

Die Zauberworte lauten ord (oder byte) und inttohex. Mit dem ersten kannst du den Wert eines Zeichens herausfinden, und mit letztem wandelst du den Wert in die hexadezimale Entsprechung um.


Gottdrak99 - Sa 13.09.03 11:25

das problem ist wenn ich IntToStr(ord('b')); eingebe kriege ich 98 raus, dagegen kann ich IntToStr(ord(label1.caption)); nicht eingeben weil da nur integers möglich sind, also nur zahlen, oder muss man label1.caption in ein Pchar umwandeln? wen ja, dann wie?


cbs - Sa 13.09.03 11:50

huhu

Gottdrak99 hat folgendes geschrieben:
dagegen kann ich IntToStr(ord(label1.caption)); nicht eingeben


label1.caption ist vom typ STRING .. für die funktion ORD brauchst du ein ordinalen typ, also z.b. CHAR .. da ein string aus lauter CHARs besteht musst du angeben welches zeichen des strings du angezeigt haben möchtest

z.b.

Delphi-Quelltext
1:
IntToStr(ord(label1.caption[0]));                    

zeigt den ascii wert vom ERSTEN zeichen von label1.caption an

Delphi-Quelltext
1:
IntToStr(ord(label1.caption[5]));                    

zeigt den ascii wert vom SECHSTEN zeichen von label1.caption an


Motzi - Sa 13.09.03 14:53

@cbs: so wie du mit den Strings umgehst entspricht das den alten Pascal-Strings..! Bei den neuen LongStrings kannst du gar nicht auf das Offset 0 zugreifen und das erste Zeichen des Strings hat das Offset 1. Daher entspricht das Zeichen am Offset 5 auch dem 5 und nicht dem sechsten Zeichen...


cbs - Sa 13.09.03 14:55

stimmt :oops: