Hallo zusammen,
ich versuche aus einer Textdatei (später dann mal csv) zu lesen,
und dann in ein Array zu schreiben (Array Testspektrum wird in der Funktion übergeben, aber noch nicht benutzt). Leider bleibt der String/Stream(?) leer (Test mit QMessagebox).
Vielleicht weiß hier jemand Rat?
Vorlage war S. 453, Qt4 Gui Entwicklung von Jürgen Wolf.
void myTool::openCsvFile(cSpectrum *TestSpektrum)
{
QString str_FileName;
QString str_Line; // read line by line
str_FileName = QFileDialog::getOpenFileName(this, tr("Datei öffnen"), "", "Alle Dateien (*.*)" );
if (!str_FileName.isEmpty())
{
QFile File(str_FileName);
QTextStream ds(&File);
QMessageBox X;
X.setText(ds.readLine());
X.exec(); // Testausgabe bleibt leer
for (int i=0; i < 5; i++)
{
str_Line = ds.readLine();
QMessageBox Test;
Test.setText(str_Line);
Test.exec();
}
File.close();
}
}
[gelöst] csv einlesen mit FileDialog
-
- Beiträge: 61
- Registriert: 26. November 2009 00:08
- Kontaktdaten:
[gelöst] csv einlesen mit FileDialog
Zuletzt geändert von RogerWilco am 29. November 2009 12:14, insgesamt 1-mal geändert.
-
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
-
- Beiträge: 61
- Registriert: 26. November 2009 00:08
- Kontaktdaten:
Mhhh... im Beispiel war keins drin.
Allerdings auch kein File.close()
Aber wie müsste das aussehen?
Der folgende Code funktioniert nicht. Was muß ich denn als Parameter bei open() übergeben?
...
if (!str_FileName.isEmpty())
{
QFile File(str_FileName);
File.open();
QTextStream ds(&File);
QMessageBox X; // Testausgabe bleibt leer
X.setText(ds.readLine());
X.exec();
...
Allerdings auch kein File.close()
Aber wie müsste das aussehen?
Der folgende Code funktioniert nicht. Was muß ich denn als Parameter bei open() übergeben?
...
if (!str_FileName.isEmpty())
{
QFile File(str_FileName);
File.open();
QTextStream ds(&File);
QMessageBox X; // Testausgabe bleibt leer
X.setText(ds.readLine());
X.exec();
...
-
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
vermutlich brauchst Du ReadOnly, aber sagt das Deine Doku nicht auch?bool QFile::open ( OpenMode mode ) [virtual]
Opens the file using OpenMode mode, returning true if successful; otherwise false.
The mode must be QIODevice::ReadOnly, QIODevice::WriteOnly, or QIODevice::ReadWrite. It may also have additional flags, such as QIODevice::Text and QIODevice::Unbuffered.
Note: In WriteOnly or ReadWrite mode, if the relevant file does not already exist, this function will try to create a new file before opening it.
Note: Because of limitations in the native API, QFile ignores the Unbuffered flag on Windows.
Reimplemented from QIODevice.
See also QIODevice::OpenMode and setFileName().
Servus,
Wie Troll.Soft es sagte, man braucht den OpenMode. Ausserdem liefert Qt von Haus aus Beispiele mit. Wäre schön, wenn man sie auch benützen würde!
Aber ich bin mal nicht so.
Wie Troll.Soft es sagte, man braucht den OpenMode. Ausserdem liefert Qt von Haus aus Beispiele mit. Wäre schön, wenn man sie auch benützen würde!
Aber ich bin mal nicht so.
Code: Alles auswählen
void myTool::openCsvFile(cSpectrum *TestSpektrum)
{
QString str_FileName;
QString str_Line; // read line by line
str_FileName = QFileDialog::getOpenFileName(this, tr("Datei öffnen"), "", "Alle Dateien (*.*)" );
if (!str_FileName.isEmpty())
{
QFile File(str_FileName);
if( File.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
QMessageBox Test;
QTextStream ds(&File);
while( !ds.atEnd() )
{
str_Line += ds.readLine() + "\n";
}
Test.setText( str_Line );
Test.exec();
File.close();
}
}
}
-
- Beiträge: 61
- Registriert: 26. November 2009 00:08
- Kontaktdaten:
Erstmal vielen Dank.
Es stimmt, es gibt eine Menge Doku. Und die Doku ist sicher auch umfassend.
Ich muß nur für mich als Anfänger sagen:
Ich sehe da oft den Wald vor Bäumen nicht.
Da steht unheimlich viel und für mich als Anfänger ist da vieles nicht glasklar oder ich suche an der falschen Ecke.
Übung macht den Meister.
Aber Danke an die Profis hier, die sich den Newbies annehmen!
Es stimmt, es gibt eine Menge Doku. Und die Doku ist sicher auch umfassend.
Ich muß nur für mich als Anfänger sagen:
Ich sehe da oft den Wald vor Bäumen nicht.
Da steht unheimlich viel und für mich als Anfänger ist da vieles nicht glasklar oder ich suche an der falschen Ecke.
Übung macht den Meister.
Aber Danke an die Profis hier, die sich den Newbies annehmen!