que pensez-vous de ma classe?
salut,
j'ai créé une classe pour écrire et lire dans un fichier perso...
je compte utiliser une autre classe pour traiter les données qui héritera de celle-ci
j'aimerais votre avis pour savoir si je mis prend bien niveau algorithme
Fichier_tcce.h
Code:
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 40 41 42
| #ifndef FICHIER_TCCE_H_INCLUDED
#define FICHIER_TCCE_H_INCLUDED
#define INFO_MAQUETTE 8
#define PROG "p"
#define AUTO "a"
#define ENTREE "e"
#define SORTIE "s"
#include "Qt/qstring.h"
#include "Qt/qvariant.h"
#include "Qt/qlist.h"
/* Cette classe permet de lire et écrire dans un fichier *.tcce
Voir dans Doc algo, contenu fichier tcce
*/
class Fichier_tcce
{
protected:
QString m_chemin_fichier;
QList<QString> m_lignes_fichier_general;
QList<QList<QString> > m_lignes_fichier_tests;
public:
Fichier_tcce(QString chemin_fichier);
Fichier_tcce(QString chemin_fichier, QList<QString> lignes_fichier_general, QList<QList<QString> > lignes_fichier_tests);
void creer_ecrire(bool &succes);
void lire(bool &succes);
void effacer(bool &succes);
void changer_chemin(QString &chemin_fichier);
};
#endif |
Fichier_tcce.cpp
Code:
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| #include "Fichier_tcce.h"
#include "Qt/qstring.h"
#include "Qt/qfile.h"
#include "Qt/qdatastream.h"
#include "Qt/qvariant.h"
#include "Qt/qlist.h"
Fichier_tcce::Fichier_tcce(QString chemin_fichier):m_chemin_fichier(chemin_fichier)
{
}
Fichier_tcce::Fichier_tcce(QString chemin_fichier, QList<QString> lignes_fichier_general, QList<QList<QString> > lignes_fichier_tests)
:m_chemin_fichier(chemin_fichier), m_lignes_fichier_general(lignes_fichier_general), m_lignes_fichier_tests(lignes_fichier_tests)
{
}
void Fichier_tcce::creer_ecrire(bool &succes)
{
QFile fichier(m_chemin_fichier);
QString nb_test=m_lignes_fichier_general.at(6);
int nb_test_dec=nb_test.toInt(&succes);
succes=fichier.open(QIODevice::WriteOnly);
if (succes && m_lignes_fichier_general.size()== INFO_MAQUETTE && m_lignes_fichier_tests.size()==nb_test_dec)
{
QDataStream out(&fichier);
for(int position=0; position<INFO_MAQUETTE; position++)
{
out<<m_lignes_fichier_general.at(position);
}
QList<QString> lignes_test;
for(int position=0; position<nb_test_dec; position++)
{
lignes_test=m_lignes_fichier_tests.at(position);
for(int position=0; position<lignes_test.size(); position++)
{
out<<lignes_test.at(position);
}
}
fichier.close();
}
else
{
succes=false;
}
}
void Fichier_tcce::lire(bool &succes)
{
QFile fichier(m_chemin_fichier);
succes=fichier.open(QIODevice::ReadOnly);
if (succes)
{
QDataStream in(&fichier);
m_lignes_fichier_general.clear();
m_lignes_fichier_tests.clear();
QString ligne_fichier;
for(int position=0; position<INFO_MAQUETTE; position++)
{
in>>ligne_fichier;
m_lignes_fichier_general.append(ligne_fichier);
}
ligne_fichier=m_lignes_fichier_general.at(6);
int nb_test_dec=ligne_fichier.toInt(&succes);
if(succes)
{
QList<QString> lignes_test;
for(int position=0; position<nb_test_dec; position++)
{
in>>ligne_fichier;
lignes_test.append(ligne_fichier);
in>>ligne_fichier;
lignes_test.append(ligne_fichier);
in>>ligne_fichier;
lignes_test.append(ligne_fichier);
if(ligne_fichier==AUTO)
{
}
else if(ligne_fichier==PROG || ligne_fichier==ENTREE)
{
for(int position=3; position<6; position++)
{
in>>ligne_fichier;
lignes_test.append(ligne_fichier);
}
}
else if(ligne_fichier==SORTIE)
{
for(int position=3; position<5; position++)
{
in>>ligne_fichier;
lignes_test.append(ligne_fichier);
}
}
m_lignes_fichier_tests.append(lignes_test);
}
}
fichier.close();
}
}
void Fichier_tcce::effacer(bool &succes)
{
QFile fichier(m_chemin_fichier);
succes=fichier.remove();
}
void Fichier_tcce::changer_chemin(QString &chemin_fichier)
{
m_chemin_fichier=chemin_fichier;
} |