Probleme mit "toHex()"

Alles rund um die Programmierung mit Qt
Antworten
HappyEnding
Beiträge: 26
Registriert: 5. März 2009 14:15

Probleme mit "toHex()"

Beitrag 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.
Dateianhänge
Replay.rar
Replay
(48.81 KiB) 143-mal heruntergeladen
Troll.Soft
Beiträge: 190
Registriert: 18. Juni 2008 09:52
Wohnort: Hamburg

Re: Probleme mit "toHex()"

Beitrag 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
HappyEnding
Beiträge: 26
Registriert: 5. März 2009 14:15

Beitrag von HappyEnding »

Ok, danke, ich probier das mal :)
Antworten