Hi!
Hatte ja schon mal das umgekehrte Problem.
Situation:
Der String enthält folgende Zeichenkette ( _ entspricht
Leerstelle ): „E0_00_F7_E3_00_12_13_03_FF_07“ Die einzelnen
Buchstabenpaare ergeben immer eine Hexademzimalzahl. Also 0xE0
0x00 0xF7 …
Wie bekomme ich nun die Hexzahlen wieder aus dem Stringarray
zurück?
Sie sollen in ein Array mit 10 Stellen des Datentyps BYTE ( 0
- 127 ) gespeichert werden.
BYTE ist ein unsigned char (0-255)
Das Hexzahlen - Array soll also folgendermaßen aussehen:
BYTE telegram[10];
telegram[0] = E0
telegram[1] = 00
…
Wäre euch echt dankbar
Tara
Hi Tara,
hier mal ganz rudimentär mit simplem C.
Das Ganze kann man natürlich noch wesentlich kompakter und universeller schreiben. Aber für deinen Fall tut es, was es soll.
BYTE hex (char *s)
{
int buff[2]={0,0};
s= strupr(s); // sicher ist sicher, könnte ja auch e0 sein
for (int i=0;i=‚A‘) buff[i]= s[i]-‚A‘+10; // reine ASCII-Rechnung
else buff[i]= s[i]-‚0‘;
}
return buff[0]*16 + buff[1];
}
void test()
{
CString cs=„E0_00_F7_E3_00_12_13_03_FF_07“;
BYTE telegram[10],cnt=0;
char buffer[3]=„00“; //wichtig wegen Null-Terminierung bei strncpy
char *s= cs.GetBuffer();
for (int i=0;i