wie schon im titel genannt, habe ich ein problem mit der replace funktion
Code: Alles auswählen
QByteArray & QByteArray::replace ( int pos, int len, const char * after )Code: Alles auswählen
QByteArray tmp = QByteArray::QByteArray(512, 0x00);mit der nachfolgenden funktion soll bei aufruf mit entsprechenden parametern zb.
Code: Alles auswählen
writeSuBlock(&tmp, 16*1024, Time_t, name, 4, 0, 0);Code: Alles auswählen
void writeSuBlock(QByteArray *tmp, size_t clustersize, size_t thetime, QString name, size_t maxsize, size_t frcount, size_t nodecount)
{
tmp->replace(0, 4, (const char *)&thetime);
QMessageBox::warning(NULL, QString::fromUtf8("nufs v%1").arg(VERSION), QString::fromUtf8("size of tmp 1: %1 - %2").arg(tmp->size()).arg(thetime), 1, 0, 0);
tmp->replace(4, 4, (const char *)&nodecount);
QMessageBox::warning(NULL, QString::fromUtf8("nufs v%1").arg(VERSION), QString::fromUtf8("size of tmp 2: %1 - %2").arg(tmp->size()).arg(nodecount), 1, 0, 0);
tmp->replace(8, 4, (const char *)&clustersize);
QMessageBox::warning(NULL, QString::fromUtf8("nufs v%1").arg(VERSION), QString::fromUtf8("size of tmp 3: %1 - %2").arg(tmp->size()).arg(clustersize), 1, 0, 0);
tmp->replace(12, name.size(), name.toLatin1());
QMessageBox::warning(NULL, QString::fromUtf8("nufs v%1").arg(VERSION), QString::fromUtf8("size of tmp 4: %1 - %2").arg(tmp->size()).arg(name), 1, 0, 0);
tmp->replace(267, 4, (const char *)&frcount);
QMessageBox::warning(NULL, QString::fromUtf8("nufs v%1").arg(VERSION), QString::fromUtf8("size of tmp 5: %1 - %2").arg(tmp->size()).arg(frcount), 1, 0, 0);
tmp->replace(271, 4, (const char *)&maxsize);
QMessageBox::warning(NULL, QString::fromUtf8("nufs v%1").arg(VERSION), QString::fromUtf8("size of tmp 6: %1 - %2").arg(tmp->size()).arg(maxsize), 1, 0, 0);
}a) auf 502 byte schrumpft
b) werte teilweise nicht geschrieben wurden
c) positionen teilweise nicht stimmen
d) etc.
meine frage ist daher:
was mache ich falsch *g
als ergebnis soll ein 512 byte grosses qbytearray entstehen wobei
- die ersten 4 bit die uebergebene zeit
- die naechsten die uebergebene zahl 0
- die naechsten die uebergebene clustergroesse
- etc.
enthalten sollen
ich hoffe, mir kann jmd helfen :)
mfg