Char Wert in Integer umwandeln

  • 1
  • 2
  • Seite 1 von 2
Kostas
 
Avatar
 
Betreff:

Char Wert in Integer umwandeln

 · 
Gepostet: 13.08.2013 - 20:22 Uhr  ·  #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
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: Char Wert in Integer umwandeln

 · 
Gepostet: 13.08.2013 - 20:49 Uhr  ·  #2
Hi,

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

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

Gunter
Kostas
 
Avatar
 
Betreff:

Re: Char Wert in Integer umwandeln

 · 
Gepostet: 13.08.2013 - 21:14 Uhr  ·  #3
Hallo Gunter,

ein einfaches Typcast. Dankeschön.

Gruß Kostas
Kostas
 
Avatar
 
Betreff:

Re: Char Wert in Integer umwandeln

 · 
Gepostet: 13.08.2013 - 21:30 Uhr  ·  #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
PowerUser
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 1000
Dabei seit: 09 / 2007
Betreff:

Re: Char Wert in Integer umwandeln

 · 
Gepostet: 13.08.2013 - 21:50 Uhr  ·  #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
 
Betreff:

Re: Char Wert in Integer umwandeln

 · 
Gepostet: 13.08.2013 - 22:10 Uhr  ·  #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
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: Char Wert in Integer umwandeln

 · 
Gepostet: 13.08.2013 - 22:28 Uhr  ·  #7
zw. 0..9 kannst Du einfach $30 (#48) vom Integer-Wert subtrahieren.
miparo
PowerUser
Avatar
Geschlecht:
Herkunft: Germany
Alter: 59
Beiträge: 1000
Dabei seit: 09 / 2007
Betreff:

Re: Char Wert in Integer umwandeln

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

Zitat

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
  • Seite 1 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 14 · Cache Hits: 14   137   151 · Page-Gen-Time: 0.019516s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI