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 :

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 suis un peu nouveau avec c++, j´ai lu l´aide relative à tellg et seekg : http://www.cplusplus.com/reference/i...eam/seekg.html

Je dois me planter sur un concept fondamental...

Voici si cela peut aider le bout de mon fichier à lire qui pose problème :

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
Mon objectif est d´ignorer les lignes qui ont pour deuxième valeur 102, et ensuite de lire celle avec 203.

J´utilise VC2005

Merci du coup de main

Renan