Problem mit ASCII-Hex

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
mutex
Beiträge: 21
Registriert: 25. August 2009 10:28

Problem mit ASCII-Hex

Beitrag 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()));

;
}
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag 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));
mutex
Beiträge: 21
Registriert: 25. August 2009 10:28

Beitrag von mutex »

Besten Dank!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

QString::sprintf("0x%02x0x%02x", reply[i+1], reply)
oder QString::number() oder was auch immer.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
mutex
Beiträge: 21
Registriert: 25. August 2009 10:28

Beitrag 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);
archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag von archer »

Schau dir mal in QString z.B. toInt(..) an
mutex
Beiträge: 21
Registriert: 25. August 2009 10:28

Beitrag von mutex »

Olek, das warn großes Brett vorm Kopf - Besten Dank für den Hinweis - funzt *rotwerd*
Grüsse
Antworten