Seite 1 von 1

QByteArray in char * ohne \n

Verfasst: 12. Juli 2006 13:55
von FlorianBecker
Hallo,

Qt4 macht ja immer einen Terminator in einen char *, wie kann ich das umgehen? Bzw. wie löse ich das sonst ohne Qt?

Danke

Verfasst: 12. Juli 2006 15:41
von Christian81
Was meinst du genau? Der Terminator ist immer \0 und nie \n

Verfasst: 12. Juli 2006 15:53
von FlorianBecker
Das Problem ist, das ich ein Protokoll implementieren muss und das hat auch char * als Datantyp, nur will der Server eben kein \0 haben, denn das ist falsch für den Server. Das letzte Zeichen muss einfach weg.

Verfasst: 12. Juli 2006 16:00
von Christian81
Dann schick doch einfach nur ByteArray::size()-1 Daten.

Verfasst: 12. Juli 2006 16:17
von FlorianBecker
Ja, so habe ich es auch gelöst, aber das Problem besteht dann weiterhin wenn chars in der mitte sind und das sind auch welche.

Verfasst: 12. Juli 2006 16:22
von Christian81
Ich verstehe nicht ganz - Du benutzt ein QByteArray zum Senden von Strings? Was hindert dich dann daran alles in QString zu speichern und es dann per .latin1() oder ascii() oder was auch immer auf einmal zu senden?

Verfasst: 12. Juli 2006 19:55
von slash-ex
kein problem! mach einfach eine if-abfrage, die das zeichen prüft und wenns vorhanden ist, einfach weiter geht und falls nicht machste dass was du willst. falls das array zu ende ist, dann brichst du natürlich ab. guck einfach mal nach den membern von der klasse.

das dumme ist, dass dadurch halt das ganze array nochmal gelsen werden muss :cry: