Seite 1 von 1

Problem mit ASCII-Hex

Verfasst: 22. September 2009 12:11
von mutex
Hi
Ich habe ein Feld reply vom Typ uns. char - in reply steht E8, reply[i+1] 01 - das sind hexwerte die mir aber bei QT in einem QString eingelesen in ASCII-Hexwerte umgewandelt werden - ich mus die Werte jedoch verbinden zu 01e8 da die 1. Stelle das Vorz und die weiteren 3 Stellen der eigentliche Wert ist - wie mach ich das in qt am besten das ich das Feld i & i+1 verbinde und dann 1 Stelle und die weiteren 3 trenne und umrechne? in c+++ hatte ich es mit String* und substring gelöst aber in qt bekomm ich immer nur direkt die ASCII Zeichen der Werte ( bei E8 232) thx
Grüsse


Mein c++ Code, hoffe ich bin smit net im falschem Forum ;)

for(int i=0, j=1; i<189;i+=2, j++)
{ String *wert, *vorz;
float dezwert;

wert = String::Concat(reply[i+1].ToString("x2"),reply.ToString("x2"));

vorz= wert->Substring(0,1);
wert= wert->Substring(1,3);

dezwert=hex_to_dez(wert,vorz);

LB_ueber->Items->Add(String::Concat(j.ToString(),": ",dezwert.ToString()));

;
}

Verfasst: 22. September 2009 12:26
von archer
Hast du es schon mal mit den Methoden von QString probiert?

Code: Alles auswählen

text = QString("%1%2").arg(reply[i+1], 2, 16, QChar('0)).arg(reply[i], 2, 16, QChar('0));

Verfasst: 23. September 2009 09:42
von mutex
Besten Dank!

Verfasst: 23. September 2009 11:07
von Christian81
QString::sprintf("0x%02x0x%02x", reply[i+1], reply)
oder QString::number() oder was auch immer.

Verfasst: 23. September 2009 12:35
von mutex
dank Forum klappert fast alles - nun muss ich allerdings von einem hex wert der in einem QString steht (zb. E8) den ASCII-Hex code 232 in ein char schreiben. Wie mach ich das in QT?

c++ -->
String *val1="E8";
reply2[GlobX]=System::Int32::Parse(val1,System::Globalization::NumberStyles::AllowHexSpecifier);

Verfasst: 23. September 2009 13:16
von archer
Schau dir mal in QString z.B. toInt(..) an

Verfasst: 23. September 2009 13:44
von mutex
Olek, das warn großes Brett vorm Kopf - Besten Dank für den Hinweis - funzt *rotwerd*
Grüsse