Ich habe das Problem, das ich aus einem Datensatz Character-Arrays in QString-Objekte überführen muß. Solange diese Arrays nicht bis zur Halskrause gefüllt sind, kein Problem.
Code: Alles auswählen
QString::fromLatin1(array);
Code: Alles auswählen
QString::fromLatin1(array, sizeof(array));
Verwende ich die 1. Variante, wird mir an die voll gefüllten Strings hinten der Inhalt der nächsten Felder angehängt (solange nicht \0), verwende ich die 2. Variante, versucht mir Qt, auch die am Ende befindlichen, nichtdruckbaren Zeichen (\0 plus der restliche Inhalt bis zum Ende des Arrays) anzuzeigen. Beides nicht ganz erfreulich.
Ich kann zwar das ganze dahingehend umgehen, das ich entweder vorher mit memcpy in ein größeres, mit \0 vorbelegtes Array umkopiere, oder das mit QString::fromLatin1(array) erzeugte QString-Objekt hinterher mit truncate(int) oder left(int) abschneide, aber beides ist natürlich nicht allzu elegant und ich werde den Verdacht nicht los, das QString eine entsprechende Funktion schon mitbringt - oder liege ich hier falsch?
Wie würden außerdem truncate() bzw. left() bei UTF8 arbeiten, wenn die Anzahl der Character nicht mit der der Bytes übereinstimmt?
Gruß
Tilman (Räger)
[/code]