Bug in Qt, wenn QByteArray ( ... ) + '\0'

Verschiedenes zu Qt
Antworten
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Bug in Qt, wenn QByteArray ( ... ) + '\0'

Beitrag von Esleborn »

hi,
Vorbemerkung: Es ist doch eindeutig das selbe (gegeben ein QByteArray array und ein string):
a) string.prepend ( array );
b) array + string
Wenn nicht, lieg ich eh falsch :)

Jetzt folgende Funktion gegeben (getestet mit QT4.12 (Snap))

Code: Alles auswählen

const QString string ( "ABCD" );
QByteArray array ( string.toLatin1 ( ) + '\0' );

// Gibt (inklusive des einen ") folgendes aus: "ABCD
qDebug ( ) << array;

// Gibt (inklusive des einen ") folgendes aus: "ABCD
qDebug ( ) << QString ( f_string ).prepend ( array );

// Gibt (inklusive der "") folgendes aus: "ABCDABCD"
qDebug ( ) << QString ( f_string ).prepend ( QString ( array ) );

// Gibt (inklusive der "") folgendes aus: "ABCDABCD"
qDebug ( ) << QString ( array ) + f_string;

// Gibt "false" aus
qDebug ( ) << ( QString ( f_string ).prepend ( array ) == QString ( array ) + f_string );
Ist doch ein Bug, oder?


E.E.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
michams
Beiträge: 56
Registriert: 14. November 2005 18:24

Beitrag von michams »

Bei mir kommt da "true" raus (Qt 4.1.1)
Esleborn
Beiträge: 265
Registriert: 27. Januar 2005 01:23
Wohnort: Baden-Würtenberg
Kontaktdaten:

Beitrag von Esleborn »

oh sorry :oops: hatte ne falsche Version gegeben:
Eigentlich 4.2 snapshot
Glaube an eine Lösung, nur dann kannst du auch eine finden.
Antworten