Ich versuche gerade Dateien binär einzulesen und als Hex auszugeben, aber ich habe folgendes Problem:
Zwar klappt es bei den meisten Dateien aber z.B. bei Bilder etc. nicht:
Zwar wird die Datei eigelesen, aber irgendwie stimmt da was nicht (die ganzen FFFF...) man sieht an der magischen Zahl das es eine PNG Datei ist (ist im Anhang). Jetzt die Frage: Was habe ich falsch gemacht?
DANKE schon mal
Mein Code:FFFFFFFFFFFFFF89 50 4E 47 0A 1A 0A 00 00 00 49 48 44 52 00 00
00 04 00 00 00 04 08 02 00 00 00 26 FFFFFFFFFFFFFF93 09 29 00
00 00 01 73 52 47 42 00 FFFFFFFFFFFFFFAE FFFFFFFFFFFFFFCE 1C FFFFFFFFFFFFFFE9 00 00 00 09
70 48 59 73 00 00 0B 13 00 00 0B 13 01 00 FFFFFFFFFFFFFF9A FFFFFFFFFFFFFF9C
18 00 00 00 07 74 49 4D 45 07 FFFFFFFFFFFFFFDC 02 1A 01 09 2E
FFFFFFFFFFFFFFE0 FFFFFFFFFFFFFF9A 4E FFFFFFFFFFFFFFDE 00 00 00 1D 69 54 58 74 43 6F 6D 6D
65 6E 74 00 00 00 00 00 43 72 65 61 74 65 64 20
77 69 74 68 20 47 49 4D 50 64 2E 65 07 00 00 00
16 49 44 41 54 08 FFFFFFFFFFFFFFD7 63 60 60 60 FFFFFFFFFFFFFFF8 FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 3F FFFFFFFFFFFFFF94
44 FFFFFFFFFFFFFFB0 20 00 FFFFFFFFFFFFFFBB 0C 00 6D FFFFFFFFFFFFFFE2 17 FFFFFFFFFFFFFFE9 04 48 FFFFFFFFFFFFFFF4 FFFFFFFFFFFFFF9A 00
00 00 00 49 45 4E 44 FFFFFFFFFFFFFFAE 42 60 FFFFFFFFFFFFFF82
Code: Alles auswählen
void
MainWindow::readHEX(){
ui->textBrowser->clear();
int lineNum = 0x00;
QString buff, filename = QFileDialog::getOpenFileName(this);
QFile file(filename);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){
ui->textBrowser->setText(tr("Error no Input"));
return;
}
while (!file.atEnd()) {
QByteArray line = file.read(16);
for(int i=0; i != line.length(); i++){
buff.append(makeItHex((int)line[i]) + " ");
//ui->textBrowser_2->insertPlainText((QChar)line[i]);
}
ui->textBrowser->append(buff + '\n');
buff.clear();
lineNum += 16;
}
}
QString
MainWindow::makeItHex(int dez){
QString hex = QString::number(dez, 16);
if (hex.length() < 2) hex.insert(0, "0");
return hex.toUpper();
}