Ich habe folgende Ausgangssituation:
Code: Alles auswählen
void MainWindow::openFile(){
unsigned int *ptr;
unsigned int test;
QString fileName;
QByteArray data;
//fileName = QFileDialog::getOpenFileName(this,tr("Datei öffnen"),"","Alle Dateien (*.*)");
fileName = tr("E:/TAB.DAT");
QFile file(fileName);
file.open(QIODevice::ReadOnly);
data = file.readAll();
ui->lineEdit->setText(QString::number(data[0]));
ui->lineEdit_2->setText(QString::number(data[7]));
ptr = (unsigned int*)(data.data()+8);
test = *ptr;
ui->lineEdit_3->setText(QString::number(test));
}Code: Alles auswählen
01 00 00 00 00 00 00 64 00 00 03 E8 00 00 00 64Das scheint im obigen Code ansatzweise auch zu funktionieren, jedoch bekomme ich als Ergebnis von *ptr
E8 03 00 00
Ich möchte aber 00 00 03 E8 herausbekommen.
Warum ist das so gedreht?
Die erste Vermutung war -> LittleEndian, aber als ich das einstellte, BigEndian ist ja laut Doc Default, half das auch nicht weiter. Der Wert blieb gleich falsch.
Als nächstes schaute ich die einzelnen Stellen im Array auf Ihren Inhalt an, vielleicht lagen die da ja schon falsch drin. Da ist aber alles richtig in der korrekten Reihenfolge.
Woraus resultiert dieser verdrehte Wert?
Danke für Eure Hilfe
gooze