Seite 1 von 1

[gelöst] QByteArray und Datastreams

Verfasst: 5. Juli 2007 13:18
von Obliviscens
moin,

ich wollte heute ein paar Tests mit dem QByteArray machen um später eine client/server Applikation zu schreiben.
Nur irgendwie funktionieren schon die Grundtests nicht. (vielleicht ist es noch zu früh am morgen ^^)

Kann mir jemand erklären warum bei folgendem code der String leer bleibt?

Code: Alles auswählen


QByteArray data_array;
	
QDataStream data_stream(&data_array, QIODevice::ReadWrite);
data_stream.setVersion(QDataStream::Qt_4_2);
	
data_stream << "Hallo";
data_stream << "test";
	
QString output;
data_stream >> output;

mfg Obliviscens

Verfasst: 5. Juli 2007 21:55
von RD1978
Hallo,

vesuch´s mal so:

Code: Alles auswählen

QByteArray myarray;
QDataStream out( &myarray, QIODevice::WriteOnly );

out << QString( "Hallo Welt" );
out << (quint32)321;

QDataStream in( &myarray, QIODevice::ReadOnly );

quint32 myinteger;
QString mystring;

in >> mystring >> myinteger;

qDebug() << mystring << myinteger;
MfG RD1978

Verfasst: 6. Juli 2007 13:25
von Obliviscens
ah danke

hmm peinlich... ich solte mich beim auslesen des streams schon daran halten welchen Datentypen ich in den stream reingeschrieben habe und dann auch entsprechen char * benutzen... spielt ja auch für die "serialization" (keine ahnung wie das auf deutsch heisst) eine wichtige rolle...

(das ich zwei streams brauche ist mir noch nicht so ganz klar weil ich mich wundere wofür es dann die option QIODevice::ReadWrite gibt... aber ich denke das geht bei streams grundsätzlich nicht... und bevor es lustige kommentare dazu gibt befasse ich mich lieber nochmal genauer mit streams ^^)

Vielen dank für die Hilfe.

Verfasst: 8. Juli 2007 20:06
von RD1978
Hallo,

zwei Streams brauchst du nur in diesem Fall, wenn du eine Client/Server Anwendung schreiben willst, liest und schreibst du ja auf einem Stream.

MfG RD1978