Hi
Ich habe mittels Qt eine Art HexEditor erstellt. Dabei werden nur bestimmte benötigte Dateien aus dem Hexfile gelesen und tabellarisch dargestellt.
Beim Speichern sollten also die veränderten Werte im File geändert werden.
Ich habe es so hingekriegt, dass ich die Werte in der Spalte ganz rechts (siehe hexfile.jpg) mit QTextStream direkt verändern kann.
Dazu wird der Wert als int einem QString übergeben, welcher dann das ASCII-Zeichen des Wertes enthält.
Schreibe ich dieses Zeichen von Hand im Hexfile ganz rechts rein, erscheint im Hexteil der richtige Wert.
Mit dem folgenden Code klappt das oft auch, je nach Wert, werden aber zusätzliche Zeichen ins File geschrieben. Dabei ist die Ausgabe von qDebug() aber immer das ASCII-Zeichen, welches ins File geschrieben werden müsste.
Ich nehme an, das dies sowieso nicht die schöne Art ist, ein Hexfile zu editieren. Deshalb die Frage:
Wie stelle ich es an, in einem Hexfile, einzelne Werte (nach Adresse) zu verändern?
Ich habe mittels Qt eine Art HexEditor erstellt. Dabei werden nur bestimmte benötigte Dateien aus dem Hexfile gelesen und tabellarisch dargestellt.
Beim Speichern sollten also die veränderten Werte im File geändert werden.
Ich habe es so hingekriegt, dass ich die Werte in der Spalte ganz rechts (siehe hexfile.jpg) mit QTextStream direkt verändern kann.
Dazu wird der Wert als int einem QString übergeben, welcher dann das ASCII-Zeichen des Wertes enthält.
Schreibe ich dieses Zeichen von Hand im Hexfile ganz rechts rein, erscheint im Hexteil der richtige Wert.
Mit dem folgenden Code klappt das oft auch, je nach Wert, werden aber zusätzliche Zeichen ins File geschrieben. Dabei ist die Ausgabe von qDebug() aber immer das ASCII-Zeichen, welches ins File geschrieben werden müsste.
Code:
QString ascii = QString( valueDecimal );
qDebug() << ascii;
QTextStream stream(&file);
stream << ascii;
Ich nehme an, das dies sowieso nicht die schöne Art ist, ein Hexfile zu editieren. Deshalb die Frage:
Wie stelle ich es an, in einem Hexfile, einzelne Werte (nach Adresse) zu verändern?