SnakeEyes38
Messages postés3Date d'inscriptionlundi 13 octobre 2008StatutMembreDernière intervention27 mai 2009
-
26 mai 2009 à 10:44
SnakeEyes38
Messages postés3Date d'inscriptionlundi 13 octobre 2008StatutMembreDernière intervention27 mai 2009
-
27 mai 2009 à 09:36
Bonjour et désolé de vous déranger.
J'ai un petit probleme pour lire un fichier txt.
J'aimerais récupérer les valeurs d'une ligne pour les utiliser après.
Pour l'instant, je fais de cette manière mais c'est vraiment laborieux. Si vous avez une autre solution, je suis preneur.
if (is_readable("C:bddAcoustique.txt")){
ifstream fichier_lu("C:bddAcoustique.txt");
string nom_matiere = "cc"; //l'utilisateur peut demander autre chose que "cc"
string line;
string value;
while(getline(fichier_lu,line)){
if(line.find(nom_matiere)==0){
value = line.substr(0,line.find("n"));
ofstream file("C:fichier2.txt");
file << value;
}
}
ifstream fichier2_lu("C:fichier2.txt");
string str;
double Z[8];
if (!fichier2_lu.eof()) {
for (int i=0; i < 10; ++i) {
string tmp;
fichier2_lu >> tmp;
if (i != 0 && i!=9) {
istringstream iss(tmp);
iss >> Z[i-1];
}
}
}
En fait je lis la ligne qui corespond à "cc" (ou ca peut etre autre chose) et je l'ecris dans un fichier. Ensuite je lis ce nouveau fichier qui contient que la ligne qui m'interesse et je transforme les string en double. Pour chaque ligne, je n'ai besoin que des valeurs 1 à 8.
Merci de me donner un coup de pousse car je suis dans le flou le plus complet.
plasttoon
Messages postés12Date d'inscriptionmercredi 19 novembre 2008StatutMembreDernière intervention 1 septembre 2009 26 mai 2009 à 17:44
met ton fichier dans un tableau dynamique et analyse le par la suite(c'est plus rapide si tu utilise seulement du c++ natif, et évite le tas manager si ton texte deviens colossale).
char** tab
avec (fichier >> tab[i][j])
if(tab[1][0] == c && tab[1][1] == c) voicie ta ligne;
comme sa tu ferme ton fichier des que posible et tu as tou le loisir d'analiser son contenue a ta gise, Ha! oui et si tu sais vraiment ce que tu veux faire avec ton code, utilise la commende switch, s'est plus jolie a lire
vas etudier tes sokket pour l'analise de ton tableau
if(tab[a][b] != NULL )b++;
else ananalisetab[c] = tab[a][b];
voillas je t'evite la theorie sur les tableaus dinamique mais si tu as des question vien me les poster
a+
SnakeEyes38
Messages postés3Date d'inscriptionlundi 13 octobre 2008StatutMembreDernière intervention27 mai 2009 26 mai 2009 à 19:38
Merci de me répondre.
Le problème c'est que là, j'ai pris comme
exemple "cc" mais mes lignes peuvent commencer par "pom0900" ou autre
chose. Les longueur ne sont pas les mêmes.
Je pensedonc que je ne peut pas utiliser ta méthode.