Bonjour,
j'ai démarré d'un exemple sur le net qui utilise QSqlTableModel.
Pour enregistrer les différents champs du programme vers un .txt je fais
Et mon fichier .txt obtenu est comme ci-dessous:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 void Data_Exemple::txtExport() { QString fileName = QFileDialog::getSaveFileName(this, tr("Ma Sauvegarde"), "", tr("Save (*.txt);;All Files (*)")); if (fileName.isEmpty()) return; else { QFile file(fileName); if (!file.open((QIODevice::WriteOnly) | QIODevice::Text)) { QMessageBox::information(this, tr("Unable to open file"), file.errorString()); return; } QString data; data =""; for (int row = 0; row < model->rowCount(); ++row) { QSqlRecord record = model->record(row); for (int field = 0; field < record.count(); ++field) { if(field != 0 && field !=4 ) { if (field > 1) data += "\n"; data += record.field(field).value().toString(); // } } } QTextStream output(&file); output.setCodec("UTF-8"); output << data; QMessageBox::information(this,"Exportation","L'exportation au format txt est terminée"); }
Maintenant je souhaiterais faire le chargement, mon application est "vide" et je charge par exemple le fichier .txt ci-dessus (ou un autre).Jean
Dupont
Homme
14/08/1972
Claude
Sigot
Homme
26/04/1968
Amandine
Rupier
Femme
02/05/1982
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void Data_Exemple::txtImport() { //J'ouvre une boite de dialogue pour aller chercher mon fichier au format txt. QString fileName = QFileDialog::getOpenFileName(this, tr("Open Mon Fichier"), "", tr("Mon Fichier (*.txt);;All Files (*)")); if (fileName.isEmpty()) return; else { QFile file(fileName); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { QMessageBox::information(this, tr("Unable to open file"), file.errorString()); return; } //??? //La bidouille ça fonctionne pas //??? QTextStream input(&file); //input.setCodec("UTF-8"); input >> data; }
Voila si quelqu'un a une idée...
Merci.
Partager