String in eine Hexzahl convertieren
-
Hallo !!
Ich habe in einer ACCESS-Datenbank Hexwerte gespeichert. Diese sind jedoch
vom Datebtype CString´s. Nun möchte ich jedoch über die Serielle Schnittstelle
gerne diese definierten commandos senden. Der Sinn ist das der user seine adrr. der Hardware anpassen bzw ändern kann.vorher
zb. char cmd = 0x87;
Send(cmd);aus db:
char cmd = GetCommand(Z_INIT);
Send(cmd);Hier ein kleine Code dazu:
// *************************************************************** // * Get the selected command from the cmd-database in HEX * // *************************************************************** char* CHandlingCmdDlg::GetCommand(int cmd) { char rw[5]; char test = 0x87; CString dummy; CString msg; memset(rw, 0, sizeof(rw)); if(!CmdTab.IsOpen()) CmdTab.Open(); for(CmdTab.MoveFirst(); !CmdTab.IsEOF(); CmdTab.MoveNext()) { switch(cmd) { case MSG_Z_INIT: if(CmdTab.m_Command == "Z_INIT") { dummy = CmdTab.m_Value; //long lvalue = strtol( for(int i= 0; i<4; i++) { rw[i] = dummy.GetAt(i); } rw[5] += '\0'; // --> test msg.Format("Char value: %x Test char vlaue: %x",*rw ,test); MessageBox(msg, "debug info", MB_OK); return rw; } break; // usw....
Vieleicht hatte einer von Euch schon mal ein änlicher Problem.
Viele Grüße
Michael
-
Ich bin mit nicht sicher ob du das meinst:
int val; sscanf("ffa","%x",&val); ASSERT(val == 0xffa);
-
Nein mein Problem ist es aus einen CString einen Hex-wert einer char Variable
zuzuweisen. Z.B Wenn ich auf nen port was schreiben will hab ich das bis jetz immer so gemacht. Die defines waren in ner eigenen hader (motion.h)
:#define MOVE_LEFT 0x10; #defien MOVE_RIGTH 0x20; char base_adrr = 0x180; outp(base_adrr, MOVE_LEFT);
Es endert sich aber immer heufiger die Hardware und somit auch die cmd´s. Da hatte ich die idee diese in ner Datenbank zu speichern, da man sie dort im
Programm sehr leicht editieren kann. Das Problem mit Access ist jedoch es
gibt keinen char bzw hex datentype. Deshalb suche ich nach nen weg diesen
CString in eine wirkliche Hex-zahl umzuwandeln, mit der man z.b auch rechnen
könnte. Bei meinen bisherigen versuchen hab ich jedoch immer nur ein array von
char´s bekommen. Wenn ich mir dein Beispiel jedoch näher betrachte könnte das
auf dies Art jedoch auch mit nen char anstelle des integers gehen. Werds mal
mit diesen Ansatz probieren.Viele Grüße, und Danke für den Tipp
Michael
-
Hallo Nemesyzz !
He Super!, es funzt nochmals Danke für deinen Super Tipp.
Gebe jetzt einfach nen int zurück und caste den dan auf nen char.Viele Grüße
Michael