string to hex-code to byte array
-
wobei BYTE =
typedef unsigned char BYTE
-
Wenn du ein Bytearray hast dann kannst du diese doch einfach in den string kopieren? Oder versteh ich dich falsch? Ggf wär ein Codebeispiel zur Verdeutlichung gut.
-
Fall 1: lesen
typedef unsigned char BYTE; typedef BYTE *LPBYTE; LPBYTE readbuffer; string res; readbuffer = read(); //im readbuffer sind nun hex-daten res = reinterpret_cast<char *>(abyData); //wie dekodiere ich res?Fall 2: schreiben
typedef unsigned char BYTE; typedef BYTE *LPBYTE; LPBYTE sendbuffer; string str = "Das moechte ich verschicken"; copy( str.begin(), str.end(), ostream_iterator<int>( cout << hex, "" ) ); sendbuffer = str; //sowas brauch ich
-
Ich vermute mal, in readbuffer befinden sich Zahlenwerte im Bereich 0 - 2^CHAR_BIT und zwar ganz unabhängig von irgendeinem Zahlensystem. Du hast also schon ein Bytearray.
std::basic_string<> bietet die Methode c_str() an, welche ein C-String liefert.
-
// Append a string to stream void AppendString(const char * str) { LPBYTE stream = (LPBYTE)data; stream += size; memcpy(stream, str, strlen(str)); size += (WORD)strlen(str); WORD tmpSize = size - 6; memcpy(data, &tmpSize, 2); }
-
von welchem Typ ist data und size ?
-
woher kommt size in Zeile 5 "stream += size;"?
-
Du brauchst ja nicht den ganzen code von der Funktion.
LPBYTE stream = (LPBYTE)data; memcpy(stream, str, strlen(str));Will do the job.
-
do not comprehend schrieb:
Du brauchst ja nicht den ganzen code von der Funktion.
LPBYTE stream = (LPBYTE)data; memcpy(stream, str, strlen(str));Will do the job.
Err, du brauchst nur das memcpy, eine linie zu viel kopiert.
-
ok memcpy().
und wie funktioniert das ganze umgekehrt?
Also die ankommenden Daten sind vom Typ LPBYTE und liegen in hex vor.
Wie bekomme ich das in für Menschen lesbaren Klartext?