[gelöst] Qstring in Textfile schreiben [QT3]
[gelöst] Qstring in Textfile schreiben [QT3]
Hallo
Ich müsste normale Texte in ein einfaches Textfile schreiben.
Jetzt weiß ich nicht ob hier QFile oder QTextStream verwenden soll.
(Als Formatierung benötige ich nur fett; kursiv; rot und unterstrichen)
Die Beispiele die ich bis jetzt gefunden habe sind alle so kompliziert,
vielleicht findet jemand die Zeit mir ein kurzes einfaches Beispiel zu geben.
Oder gibt es da noch eine andere Qt Klasse die für diesen Zweck
besser geeignet ist?
Vielen Dank im voraus
Mit freundlichen Grüßen
Ich müsste normale Texte in ein einfaches Textfile schreiben.
Jetzt weiß ich nicht ob hier QFile oder QTextStream verwenden soll.
(Als Formatierung benötige ich nur fett; kursiv; rot und unterstrichen)
Die Beispiele die ich bis jetzt gefunden habe sind alle so kompliziert,
vielleicht findet jemand die Zeit mir ein kurzes einfaches Beispiel zu geben.
Oder gibt es da noch eine andere Qt Klasse die für diesen Zweck
besser geeignet ist?
Vielen Dank im voraus
Mit freundlichen Grüßen
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Du brauchst beides. Das QFile wird an den Stream übergeben. Und denn einfach einschreiben.
z.B.
z.B.
Code: Alles auswählen
QString Text("Beispiel");
QFile Datei("Text.txt");
if (Datei.open(QFile::WriteOnly | QFile::Truncate))
{
QTextStream Datenstrom(&Datei);
Datenstrom<<Text;
Datenstom.flush();
Datei.close();
}
else
{
qDebug()<<"schreiben ging nicht:(";
}
Ich hab in der Dokumentation gesehen,
dass in den Besipielen zu QFile
verwendet wird, bei QTextStream aber
Was ist denn da der Unterschied?
HENNING
dass in den Besipielen zu QFile
Code: Alles auswählen
QFile data("output.txt");
data.open(QFile::WriteOnly | QFile::Truncate)Code: Alles auswählen
QFile file("out.txt");
file.open(QIODevice::WriteOnly | QIODevice::Text)Was ist denn da der Unterschied?
HENNING
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
QFile ist von QIODevice abgeleitet. Also hat QFile::WriteOnly und QIODevice::WriteOnly die selbe Wirkung.
Der Rest:
QIODevice::Truncate If possible, the device is truncated before it is opened. All earlier contents of the device are lost.
QIODevice::Text When reading lines using readLine(), end-of-line terminators are translated to the local encoding.
Der Rest:
QIODevice::Truncate If possible, the device is truncated before it is opened. All earlier contents of the device are lost.
QIODevice::Text When reading lines using readLine(), end-of-line terminators are translated to the local encoding.
OK, das hat dann aber nichts miteinander zu tun...BartSimpson hat geschrieben:QIODevice::Truncate If possible, the device is truncated before it is opened. All earlier contents of the device are lost.
QIODevice::Text When reading lines using readLine(), end-of-line terminators are translated to the local encoding.
Also könnte man (bei Bedarf) beide Flags verwenden.
Allersings ergibt sich jetzt folgende Frage:
Wenn durch QIODevice::Truncate die Datei gelöscht wird
und QIODevice::Append nötig ist, um hinten dran zu schreiben,
was passiert denn dann, wenn man keins von beiden benutzt?
HENNING
PS: Kannst du mir das mit QIODevice::Text an Hand eines Beispiels erläutern?
hallo
Danke für Deine Antwort. Leider gefällt sie meinen
Compiler überhaupt nicht:
error: `WriteOnly' is not a member of type `QFile'
error: `Truncate' is not a member of type `QFile'
error: too few arguments to function `void qDebug(const char*, ...)'
error: `flush' undeclared (first use this function)
Das problem mit WriteOnly bekomme ich dadurch weg:
QFile::IO_WriteOnly
Danach kommt aber folgender Fehler:
error: syntax error before numeric constant
error: `Datenstrom' undeclared (first use this function)
Den Tippfehler bei Datenst(r)om habe ich aber schon
ausgebessert:
Datenstrom<<Text;
Datenstom.flush();
Gibt es noch weitere Vorschläge?
mfg
Danke für Deine Antwort. Leider gefällt sie meinen
Compiler überhaupt nicht:
error: `WriteOnly' is not a member of type `QFile'
error: `Truncate' is not a member of type `QFile'
error: too few arguments to function `void qDebug(const char*, ...)'
error: `flush' undeclared (first use this function)
Das problem mit WriteOnly bekomme ich dadurch weg:
QFile::IO_WriteOnly
Danach kommt aber folgender Fehler:
error: syntax error before numeric constant
error: `Datenstrom' undeclared (first use this function)
Den Tippfehler bei Datenst(r)om habe ich aber schon
ausgebessert:
Datenstrom<<Text;
Datenstom.flush();
Gibt es noch weitere Vorschläge?
mfg
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Ups das war für Qt 4
Unter Qt3 sollte es so aussehen:
Unter Qt3 sollte es so aussehen:
Code: Alles auswählen
QString Text("Bla bla bla");
QFile Textdatei("datei.txt");
if ( Datei.open( IO_WriteOnly| IO_Truncate ) )
{
QTextStream Textstrom( &Textdatei );
Textstrom<<Text;
Textdatei.close();
qDebug("fertig");
}
else
{
qDebug("ging nicht");
}
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Manchmal frage ich mich wirklich wozu es die Qt-Hilfe überhaupt gibt:
Ein Blick nach http://doc.trolltech.com/3.3/qfile.html#open hätte es innerhalb einer Minute gelöst...
Ein Blick nach http://doc.trolltech.com/3.3/qfile.html#open hätte es innerhalb einer Minute gelöst...
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
>>Manchmal frage ich mich wirklich wozu es die Qt-Hilfe überhaupt gibt
Wie so vieles auf dieser Welt ist die Intelegenz (auch die soziale)
sehr ungleichmässig verteilt. Es ist leider so, du bist klug und ich bin
blöb. Habe ich doch tatsächlich gefragt ob ich QTextStream oder
QFile brauche, dabei brauche ich beides. Mach dir nicht die
Mühe auf diese Mail zu antworten, ich will dich nicht weiter
unterfordern.
Alle anderen ein herzliches Dankeschön für Eure Mühen.
mfg
Wie so vieles auf dieser Welt ist die Intelegenz (auch die soziale)
sehr ungleichmässig verteilt. Es ist leider so, du bist klug und ich bin
blöb. Habe ich doch tatsächlich gefragt ob ich QTextStream oder
QFile brauche, dabei brauche ich beides. Mach dir nicht die
Mühe auf diese Mail zu antworten, ich will dich nicht weiter
unterfordern.
Alle anderen ein herzliches Dankeschön für Eure Mühen.
mfg
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich bin nicht intelligent, ich gebe mir nur Mühe es von allein rauszufinden. Das hast Du ja teilweise auch gemacht - nur leider ist es in diesem Forum gang und gäbe einfach zu fragen ohne sich auch nur einen einzigen Gedanken darüber zu machen :-/
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung