006
12.01.2004, 12:38 Uhr
ao
(Operator)
|
@azet: Der "Riesen-Beitrag" ist hier durchaus sinnvoll, denn er erklärt (endlich), was du eigentlich vorhast: ein paar numerische Werte aus einem String extrahieren. Das geht z.B. mit sscanf:
C++: |
int nNbrOfInstances; int nWidth; int nHeight; int nCodingScheme; int nFileIDLo; int nFileIDHi; int nFileID;
char szData [] = "01 08 08 11 4F 04 00 00 00 0A FF FF FF FF FF FF FF FF";
int nResult;
nResult = sscanf ( szData , "%X %X %X %X %X %X" , &nNbrOfInstances /* hier landet 01 */ , &nWidth /* hier 08 */ , &nHeight /* hier 08, die zweite */ , &nCodingScheme /* hier 11 */ , &nFileIDHi /* hier 4F */ , &nFileIDLo /* hier 04 */ ); assert (nResult == 6); /* sscanf gibt die Anzahl der Variablen zurueck, die mit Werten gefuellt werden konnten */
nFileID = (nFileIDHi << 8) | nFileIDLo; /* hier FileID aus Highbyte und Lowbyte zusammenbasteln */
/* Kontrolle: Daten ausgeben */ nResult = printf (" %X %X %X %X %X " , nNbrOfInstances , nWidth , nHeight , nCodingScheme , nFileID );
|
Es erscheint:
Doku über sscanf solltest du eigentlich genug finden. Unbedingt lesen, ist wichtig!
sscanf ist passend für das char-Array. Für den BSTR gibt es angepasste Versionen; bei Microsoft heißt das wsscanf swscanf, glaub ich.
Bearbeitung von ao: |
Fehlerkorrekturen und printf zur Kontrolle
|
ao Dieser Post wurde am 12.01.2004 um 12:48 Uhr von ao editiert. |