QByteArray in char * ohne \n

Alles rund um die Programmierung mit Qt
Antworten
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

QByteArray in char * ohne \n

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was meinst du genau? Der Terminator ist immer \0 und nie \n
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann schick doch einfach nur ByteArray::size()-1 Daten.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
slash-ex
Beiträge: 239
Registriert: 30. März 2005 21:40

Beitrag 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:
Antworten