Seite 1 von 1

Probleme mit "toHex()"

Verfasst: 16. April 2009 12:30
von HappyEnding
Hi,
ich Programmiere gerade an einem Replay Parser. Dazu lese ich das replay per read(1) in eine QByteArray und wuerde das ganze dann gerne als Hex anzeigen lassen.
Dabei passiert es aber immer, dass sich mein Programm aufhaengt. Ich hab schon einiges probiert, aber bisher keine Loesung gefunden.

Der Code sieht wie folgt aus:

Code: Alles auswählen

    QString holder;
    while(!file.atEnd()){
        QByteArray array(file.read(1));
        QByteArray hexArray = array.toHex();
        const char *tmp = hexArray.data();
        holder += tmp;
    }
    ui->textEdit->setText(holder);
Es geht mir in erster Linie darum, dass ich eine Moeglichkeit finde ein "Nul"-Zeichen anzeigen zu lassen. Ich hab schon probiert den String darauf zu pruefen und ein solches Zeichen z.b. durch einen "." zu ersetzen, aber das funktioniert nicht. Evtl. kann mir ja hier jemand helfen. Denn den Replay Code in Zeichen zu uebersetzen die in einer EditBox angezeigt werden koennen funktioniert, nur verschwinden dabei saemtliche "Nul"-Zeichen.
Optimal waer es natuerlich wenn der Inhalt eines solchen Replays in Hex umgewandelt und ausgegeben werden koennte. Aber wie oben gesagt, kommt es dabei zu Crashes.

Danke schonmal im Vorraus.

Im Anhang eine solche Replay Datei. Diese kann mit einem HexEditor gelesen werden.

Re: Probleme mit "toHex()"

Verfasst: 16. April 2009 21:05
von Troll.Soft
HappyEnding hat geschrieben:
Der Code sieht wie folgt aus:

Code: Alles auswählen

    QString holder;
    while(!file.atEnd()){
        QByteArray array(file.read(1));
        QByteArray hexArray = array.toHex();
        const char *tmp = hexArray.data();
        holder += tmp;
    }
    ui->textEdit->setText(holder);
Hallo Happy,
Dein Code ist mir zu kompliziert.
QString S = file.readAll().toHex();
läuft bei mir hervorragend

tschüß
der Troll

Verfasst: 16. April 2009 22:46
von HappyEnding
Ok, danke, ich probier das mal :)