Bonjour,
Dans l´objectif de convertir un fichier de mash dans un autre format. Un certain nombre de lignes d´un format particulié sont inutile à la création de l´autre format. mon idée est de lire toutes ces lignes en testant le format de la ligne, à la première différence je m´arrête et me replace au début de la ligne pour la relire ne enregistrant les infos.
Puisqu´un bout de code vaut mieux qu´un long discours voici mon code :
Je suis un peu nouveau avec c++, j´ai lu l´aide relative à tellg et seekg : http://www.cplusplus.com/reference/i...eam/seekg.html
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 string dat_file; int Up1; ifstream f_dat(dat_file.c_str()); if (!f_dat) { cout << "Erreur d ouverture f_dat" << endl; }; while (test == 102) // Les lignes à ignorer ont 102 comme deuxième valeur { Up1 = f_dat.tellg(); cout << f_dat.tellg() << endl; f_dat >> temp >> test >> temp >> temp; cout << test << "\t" << temp << endl; }; f_dat.seekg(Up1); cout << f_dat.tellg() << endl; //ici je récupère bien Up1 f_dat >> temp >> test >> temp >> temp; // Ici rien à voir je suis trois ligne plus loin et pas sur la première ligne sans erreur cout << test << "\t" << temp << endl;
Je dois me planter sur un concept fondamental...
Voici si cela peut aider le bout de mon fichier à lire qui pose problème :
Mon objectif est d´ignorer les lignes qui ont pour deuxième valeur 102, et ensuite de lire celle avec 203.
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 49 102 47 48 46 102 1 45 52 102 49 50 20 102 24 4 8 102 14 15 58 102 54 55 4 102 11 12 35 102 36 7 18 102 22 23 12 102 17 18 24 102 27 28 21 102 6 25 238 203 45 102 1 181 203 84 54 55 104 203 67 74 73 86 203 61 11 12 210 203 42 95 94 154 203 78 25 26 239 203 99 15 97 182 203 83 87 84 105 203 68 72 74
J´utilise VC2005
Merci du coup de main
Renan
Partager