Nullterminierten String in CString umwandeln...
-
Hallo all!
Ich möchte eine nullterminierten String in ein CString Objekt umwandeln, nur habe ich da irgendwie einen Hänger...Ich kriegs nicht hin!
Das müsste doch irgenwie einfach gehen, oder?
Ein CString Objekt in einen Nullterminierten String umwandeln habe ich hingekriegt, das habe ich auch auf msdn gefunden...Aber das umgekehrte irgendwie nicht....Folgenden String will ich umwandeln:
unsigned char szData[9] = "Halloalle";
Gibt es auch eine Möglichkeit die Grösse eines CString Objektes dynamisch zu bestimmen?
Gruz
Dani
-
Ich verstehe das Problem nicht:
CString str (szData);
MfG SideWinder
-
Na ja, irgenwie komisch...
Ich habs jetzt gerade so, wie ichs unten geschrieben habe probiert... Das geht dann auch so. Was ich aber genau mache ist das:
ich lese den Buffer einer seriellen Schnittstelle aus. Wenn ich das jetzt so mache, dann kriege ich immer nur das erste Zeichen im CString??? Mache ich da einen Überlegungsfehler, oder geht das so nicht...?
CString Test; // Einen leeren Buffer erzeugen DWORD dwRead; unsigned char szData[9]; const int nBuflen = sizeof(szData)-1; // Daten vom seriellen Port abholen do { RS232.Read(szData,nBuflen,&dwRead); szData[dwRead] = '\0'; Test = szData; } while (dwRead == nBuflen);
Gruz
Dan
-
0 kann durchaus ein gültiges Datenelement bei einer Übertragung sein. Bei einem C-String jedoch nicht. Dort wird 0 für die Endekennung benutzt. Du solltest dir hier wahrscheinlich einen anderen Container für die Datenhaltung suchen, sowas wie std::vector.
-
Das erste Zeichen, welches ich auslese ist meistens Leer...
Kann das sein, dass es darum nicht geht? Ich kriege meistens sowas wie:" 2aT" Plus Carriage return und Linefeed
Ich habe also zu Beginn des Strings meistens 2 Leerzeichen drin...
Gruz Dan