Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Einem Char einen Integer zuweisen
Marco D. - Do 22.06.06 20:33
Titel: Einem Char einen Integer zuweisen
Hallo,
ich will einem Char ein Integer zuweisen. Inttostr akzeptiert Delphi nicht:
[Fehler] maf.pas(840): Inkompatible Typen: 'Char' und 'String'
Was tun?
Allesquarks - Do 22.06.06 20:53
Nun ja ein char ist ja nur ein einziges Zeichen damit kann man also genau Zahlen von 1-9 darstellen (hexadezimal möchtest du doch nicht).
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function inttochar(int:integer):char asm add al,$30; end;
function inttochar(int:integer):char result:=char(int+$30)); end; |
Narses - Do 22.06.06 20:53
Delphi-Quelltext
1:
| CharVar := Char(IntVar); |
Marco D. - Do 22.06.06 20:57
Allesquarks hat folgendes geschrieben: |
function inttochar(int:integer):char
result:=char(int+$30));
end;
[/delphi] |
Was bedeutet $30?
@Narses: funktioniert :zustimm:
Allesquarks - Do 22.06.06 21:03
Ein Character in Delphi ist nach dem Ascii oder Ansii Zeichensatz codiert egal wie, wenn der Binäre Wert des Char 2 ist ist das irgendein sehr merkwürdiges Sonderzeichen. Die Ziffern 1-9 beginnen in der Ascii Tabelle bei $30, wobei das $ nur signalisiert, dass die eingegebene Zahl hexadezimal ist, das heißt im konkreten Fall 3*16=48, dass heißt du könntest auch 48 hinterschreiben dann aber ohne $.
Um die Tabellenplätze bestimmter Zeichen zu finden empfiehlt sich ord().
Da ein char = 1 byte ist hat die ascii Tabell maximal 256 einträge, da 11111111b = $FF = 255 . +1 wegen der Null
siehe auch widechar.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!