000
09.08.2007, 09:20 Uhr
cmos
|
hallo, ich lese unter windows mit CFile eine datei binär ein, da meine informationen auch darin binär gespeichert sind. ich habe einen buffer angelegt. je nach fall lese ich 1,2, oder 4 werte ein. meine werte sind je 2byte groß. wenn ich einen wert einlese dann habe ich in meinem buffer z.b. 2 komsiche zeichen stehen deren ascii wert z.b. 01 und 33 ist. lade ich meine datei im hexeditor, dann hat mein 2byte großer wert diesen hexwert 0121h. dieser wird in den buffer gelesen. wenn ich 0121h in dezimal umrechne,kommt 289 heraus. und genau diesen wert brauche ich dann später wieder im programm. aber im buffer habe ich 0133. ich habe jetzt erstmal was hingemurkst, aber das sollte doch auch noch schneller und einfach gehen.
C++: |
int iTemp = 0; char cTemp[2];
sConvert.Format(_T("%x"),cTempBuffer[0]); ::strcpy(cTemp,sConvert.GetBuffer(sConvert.GetLength())); iTemp += (atoi(cTemp)) * 100; sConvert.Format(_T("%x"),cTempBuffer[1]); ::strcpy(cTemp,sConvert.GetBuffer(sConvert.GetLength())); iTemp += atoi(cTemp);
|
Ich habe hier schon die sufu benutzt. Also ein sprintf oder dieses std:: use Zeug möchte ich nicht verwenden. und auf eine umrechnung per "hand" möchte ich auch verzichten.
danke, cmos |