2010-04-09 9 views
1

Comment copier des données d'une liste Qstring dans un fichier texte pour les récupérer ultérieurement? Est-il possible de faire cela dans Qt?Copier QStringList dans un fichier texte

Comment mettre un caractère de nouvelle ligne dans un Fiel texte à l'aide QFile je l'ai fait comme ça

QFile data("output.txt"); 
if (data.open(QFile::Append)) 
{ 
QTextStream out(&data); 
out << fileDet[i]; 
data.putChar('\n'); 
} 
+0

Comment mettre un seul caractère à déposer – Sijith

Répondre

3

Jetez un oeil à http://doc.qt.io/archives/4.6/qfile.html#details et http://doc.qt.io/archives/4.6/qtextstream.html#details.

Quelques exemples de code:

#include <QFile> 
#include <QStringList> 
#include <QTextStream> 
#include <cstdlib> 
#include <iostream> 

int main() { 
    QStringList l; 
    l += "one"; 
    l += "two"; 

    // write data 
    QFile fOut("file.txt"); 
    if (fOut.open(QFile::WriteOnly | QFile::Text)) { 
    QTextStream s(&fOut); 
    for (int i = 0; i < l.size(); ++i) 
     s << l.at(i) << '\n'; 
    } else { 
    std::cerr << "error opening output file\n"; 
    return EXIT_FAILURE; 
    } 
    fOut.close(); 

    // read data 
    QStringList l2; 
    QFile fIn("file.txt"); 
    if (fIn.open(QFile::ReadOnly | QFile::Text)) { 
    QTextStream sIn(&fIn); 
    while (!sIn.atEnd()) 
     l2 += sIn.readLine(); 
    } else { 
    std::cerr << "error opening output file\n"; 
    return EXIT_FAILURE; 
    } 

    // print 
    for (int i = 0; i < l2.size(); ++i) 
    std::cout << qPrintable(l2.at(i)) << '\n'; 
} 
+0

Mon but est de mettre un saut de ligne, de repos tous les personnages que je mets – Sijith

+0

Comment mettre un retour à la ligne dans un Fiel texte à l'aide QFile Je l'ai fait comme cette données QFile ("sortie .SMS"); \t \t si (data.open (QFile :: Append)) { \t \t QTextStream out (&data); \t \t sur << fileDet [i]; \t \t data.putChar ('\ n'), je – Sijith

+0

Je ne suis pas sûr de comprendre votre question: 'putChar' devrait probablement marcher, mais vous pouvez également utiliser' 'out' '\ n''galement – mkj

1

Vous pouvez faire quelque chose comme ce qui suit:

// first, we open the file 
QFile file("outfile.txt"); 
file.open(QIODevice::WriteOnly); 

// now that we have a file that allows us to write anything to it, 
// we need an easy way to write out text to it 
QTextStream qout(&file); 

// I can write out a single ASCII character doing the following 
qout << QChar((int)'\n'); 
// But when you're dealing with unicode, you have to be more careful 
// about character sets and locales. 

// I can now easily write out any string 
QString text("Hello!"); 
qout << text; 

// and when you're done, make sure to close the file 
file.close(); 

Voir la documentation sur QFile, QTextStream, QString et QChar tous qui est disponible sur le qt documentation website .

+0

Même chose que j'ai fait mais en obtenant le caractère inconnu au lieu de newline – Sijith

+0

J'ai enlevé Unicode des propriétés de projet> c/C++> préprocesseur, puis également le même caractère inconnu – Sijith

+0

Veuillez ajouter votre erreur complète à votre message. –

Questions connexes