Seite 1 von 2
Binary File einlesen!
Verfasst: 18. September 2008 13:37
von blm
das binär File ist hergestellt von einer anderen software,
es enthalt text and data, ist ein vermischt binär File,
und ich möchte mittels
file.open(QIODevice::Readonly)
das File einlesen, aber erfolglos..
könnt QFile nur lesen das von QFile hergestellte binär File ?
Danke im Voraus!
Verfasst: 18. September 2008 13:59
von Christian81
Bessere Fehlerbeschreibung bitte!
Geht QFile::open() nicht? Schonmal geschaut ob der PFad passt bzw. ob QFile::error() Dir weiterhilft?
Verfasst: 18. September 2008 14:14
von blm
Christian81 hat geschrieben:Bessere Fehlerbeschreibung bitte!
Geht QFile::open() nicht? Schonmal geschaut ob der PFad passt bzw. ob QFile::error() Dir weiterhilft?
danke!
QFile::open() geht nicht,
ich habe so getest,
Code: Alles auswählen
if (file.open(QIODevice::Readonly))
{
QDataSteam in(&file);
QString inin;
in >> inin;
textEdit->setPlainText(inin);
}
else
QMessageBox::informaion(this, tr("OktoberFest"), tr("Bier trinken"), QMessageBox::ok);
leider habe ich immer Oktoberfest gesehen und immer Bier trinken..
QFile::error() , wie kann man nutzen?
Verfasst: 18. September 2008 14:17
von blm
pfad ist kein Problem,
Code: Alles auswählen
const QString &filename =":/test.F22";
QFile file(&filename);
...
Verfasst: 18. September 2008 14:21
von blm
ok, the Error code ist 5,
QFile::OpenError 5 The file could not be opened.
aber ich kann es mittels TextPad öffnen!
Verfasst: 18. September 2008 14:27
von Christian81
":/test.F22" als Dateiname ???
Verfasst: 18. September 2008 14:33
von blm
Christian81 hat geschrieben:":/test.F22" als Dateiname ???
wieso nicht?
ich habe eine andere Datei getestet, aber eine Text Datei,
const QString &filename =":/test.txt";
QFile file(&filename);
funktioniert!
Verfasst: 18. September 2008 14:35
von blm
Christian81 hat geschrieben:":/test.F22" als Dateiname ???
":/test.F22" ist ein Pfad,
test.F22 ist Dateiname.
Verfasst: 18. September 2008 14:35
von Christian81
1. Gibst Du einen relativen Pfad an - aber Dein Programmpfad kann total woanders hinzeigen - d.h. dein aktuelles Workdir passt nicht
2. Weder unter Windows noch unter Linux kann ich eine Datei mit dem Namen :/test.F22" anlegen...
Verfasst: 18. September 2008 14:43
von blm
Christian81 hat geschrieben:1. Gibst Du einen relativen Pfad an - aber Dein Programmpfad kann total woanders hinzeigen - d.h. dein aktuelles Workdir passt nicht
2. Weder unter Windows noch unter Linux kann ich eine Datei mit dem Namen :/test.F22" anlegen...
hi, Christian, du hast recht!
ich ersetze ":/test.F22" als "test.F22", (außerdem, komisch ist, ":/test.txt" funktioniert!)
jetzt habe ich kein OktoberFest gesehen, aber trotzdem kein Output,
is diese code
Code: Alles auswählen
QDataSteam in(&file);
QString inin;
in >> inin;
textEdit->setPlainText(inin);
falsch!?
Verfasst: 18. September 2008 14:45
von Christian81
Kannst Du nicht einfach mal methodisch vorgehen und schauen ob QFile::open() korrekt funktioniert und wenn nicht, schauen ob der App-Pfad richtig ist??
Verfasst: 18. September 2008 14:54
von blm
Christian81 hat geschrieben:Kannst Du nicht einfach mal methodisch vorgehen und schauen ob QFile::open() korrekt funktioniert und wenn nicht, schauen ob der App-Pfad richtig ist??
ich habe noch mal getestet,
Code: Alles auswählen
if (file.open(QIODevice::Readonly))
{
cerr<<file.error();
QDataSteam in(&file);
QString inin;
in >> inin;
cerr<<inin.toStdString();
textEdit->setPlainText(inin);
}
else
cerr<<file.error();
QMessageBox::informaion(this, tr("OktoberFest"), tr("Bier trinken"), QMessageBox::ok);
feedback ist 0, No error occurred.
so, jetzt verstehe ich nicht..
Verfasst: 18. September 2008 15:26
von Christian81
D.h. Du kannst die Datei jetzt öffnen.
Und Du bist Dir sicher dass die Daten in der Datei auch als QDatastream vorliegen? Glaube ich nämlich nicht - zumindest nicht laut deinem ersten Post.
Verfasst: 18. September 2008 15:44
von blm
Christian81 hat geschrieben:D.h. Du kannst die Datei jetzt öffnen.
Und Du bist Dir sicher dass die Daten in der Datei auch als QDatastream vorliegen? Glaube ich nämlich nicht - zumindest nicht laut deinem ersten Post.
ja, stimmt nicht als QDatastream,
die Stuktur ist so,
Anfang ist ein Text Anteil als Kopf,
danach ist die binär Raw Datei.
wie kann ich solches File einlesen?
Verfasst: 18. September 2008 15:47
von Christian81
blm hat geschrieben:
wie kann ich solches File einlesen?
Byte für Byte auslesen und nach dem Format die Daten interpretieren.