BYTE-Range in string
-
hallo,
kann mir jemand sagen, wie ich eine BYTE-Range in einen std::string konvertieren kann?
Danke,
Gruß, Amalthea
-
über den konstruktor:
string s(begin, end);
-
Hab das so implementiert:
in t_data stehen die daten in binärer form...
std::string dcHelperFunctions::ByteRangeToString ( BYTE* t_data, unsigned short t_offset, unsigned short t_length ) { std::string res( t_data[t_offset], t_data[t_length] ); return res; }
Irgendwie müssen die binär daten ja noch umgewandelt werden...
Gruß,
Amalthea
-
Vielleicht noch zum besseren Verständnis...
ich hab folgenden Code in C# und muss den in C++ umsetzen:
byte[] data; int offset; int length; string res; Encoding ascii = Encoding.ASCII; char[] asciiChars = new char[ascii.GetCharCount(data, offset, length)]; ascii.GetChars(data, offset, length, asciiChars, 0); res = new string(asciiChars); }
Die Encoding Klasse gibt es wohl unter C++ in Verbindung mit .Net-Framework auch. Da ich mich aber mit .Net nicht auskenne, wäre ich glücklich, wenn es auch ohne geht.
Gruß,
Amalthea
-
Amalthea schrieb:
Hab das so implementiert:
in t_data stehen die daten in binärer form...
std::string dcHelperFunctions::ByteRangeToString ( BYTE* t_data, unsigned short t_offset, unsigned short t_length ) { std::string res( t_data[t_offset], t_data[t_length] ); return res; }
ich glaube du willst eher:
return string(&data[offset], &data[offset+length]); //oder gleich return string(data+offset, data+offset+length);
ob das ne funktion wert ist, ist ne andere frage...
wie das jetzt encodiert werden soll weiß ich nicht, kenne kein C# bzw. diese Encoding-Klasse.
-
Hallo DrGreenthumb,
danke, das hat mir auf jeden Fall schon mal weitergeholfen!
Gruß,
Amalthea