Char Wert in Integer umwandeln

  • 1
  • 2
  • Page 1 of 2
Kostas
 
Avatar
 
Subject:

Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 20:22  ·  #1
Hallo Zusammen,


nach langer langer Zeit beschäftige ich mich wieder mir den AVRCo und habe eine sehe einfache
Frage.

Ich habe einen Typ definiert:
Code
TRXTelegramArray = array[0..MaxRXCount-1] of char;


Das Array Element 3 RXTelegramArray[2] beinhaltet nummerische Zeichen
von '0'..'9'
Die Frage nun, wie kann ich bitte aus dem Char ein Integer machen?
Code
StrToInt(RXTelegramArray[2]) 
Das geht nicht da StrToInt ein String verlangt,
ich habe jedoch ein Char.

Gruß Kostas
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 20:49  ·  #2
Hi,

schau mal im Compiler Manual nach Typ Konvertierung!
myinteger := integer(TRXTelegramArray[i]);

Zurück geht es analog mit char(...)

Gunter
Kostas
 
Avatar
 
Subject:

Re: Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 21:14  ·  #3
Hallo Gunter,

ein einfaches Typcast. Dankeschön.

Gruß Kostas
Kostas
 
Avatar
 
Subject:

Re: Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 21:30  ·  #4
Hallo Gunter,
hat leider noch nicht so funktioniert.

var PumpID:byte;
begin
RXTelegramArray[2] := '1'; <<<als Beispiel wird hier der String 1 übergeben. PumpID soll dann ebenfalls die Zahl 1 haben.
PumpID := byte(RXTelegramArray[2]); <<<PumpID hat danach Decimal 49 sollte jedoch Decimal 1 haben.

Gruß Kostas
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 21:50  ·  #5
Hallo Kostas,
dann schreib doch auch Decimal 1 rein in Dein Char wenn Du das haben willst.

Txt[2]:= char($01);

Du schreibst mit Txt[2]:='1'; das Ascii Zeichen dort rein und das hat nun mal den Decimalen Wert 49. 😉

Gruß
miparo
Kostas
 
Avatar
 
Subject:

Re: Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 22:10  ·  #6
Danke für den Hinweis miparo,
der Hintergrund ist, über RS232 kommt ein Kommando bestehend aus drei ziffern gefolgt von CR also 123<#13>
Ich würde gerne die dritte Stelle also die "3" umwandeln als Integer. Das ist die Frage.
Hast du eine Idee wie das geht?

Gruß Kostas
Gunter
Administrator
Avatar
Gender:
Location: Frankfurt Main / Germany
Posts: 1697
Registered: 02 / 2003
Subject:

Re: Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 22:28  ·  #7
zw. 0..9 kannst Du einfach $30 (#48) vom Integer-Wert subtrahieren.
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: Char Wert in Integer umwandeln

 · 
Posted: 13.08.2013 - 22:52  ·  #8
dann aber zumindestens so:

Quote

function IsNumeric(s : char; var Ret : integer) : boolean;
begin
if not (s in ['0'..'9']) then
Ret:=0;
return(false);
else
Ret:= ord(s)-$30;
return(true);
endif;
end;


Waum Int wenn es eh nur von 0..9 geht ?
  • 1
  • 2
  • Page 1 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   135   149 · Page-Gen-Time: 0.039382s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI