Recherche dans un fichier texte
Salutations!
Mon programme est censé lire et chercher dans un fichier nommé donnees.txt .
Les données se présentent comme ca:
Citation:
SITE Reims
IP xxx.xxx.xxx.xxx
MASQUE xxx.xxx.xxx.xxx
PASSERELLE xxx.xxx.xxx.xxx
DNS xxx.xxx.xxx.xxx
WINS xxx.xxx.xxx.xxx
FIN 0
et voici mon code (qui va en faire vomir plus d'un:oops: ) pour rechercher les données spécifiques à un site :
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
| cout<<"Nom du site voulu:";
cin>>nomsite;
ifstream fb("C:/.../donnees.txt");
fb>>type>>valeur;
if ( fb )
{
while ( getline( fb, ligne ) )
{
if(valeur==nomsite)
{
while ( getline( fb, ligne ) )
{
if(type=="IP")
{
ip=valeur;
}
if(type=="MASQUE")
{
masque=valeur;
}
if(type=="PASSERELLE")
{
passerelle=valeur;
}
if(type=="DNS")
{
dns=valeur;
}
if(type=="WINS")
{
wins=valeur;
}
if(type=="FIN")
{
break;
}
fb>>type>>valeur;
}
}
fb>>type>>valeur;
}
}
fb.close(); |
En gros,
-je demande le nom du site dont il faut extraire les données.
-J'ouvre le fichier.
-Je test si il existe.
-Je le lis ligne par ligne.
-Dès qu'il rencontre le bon nom de site, je réouvre une nouvelle lecture ligne par ligne a partir de la ou il sotcke pour chaque type sa valeur dans des variables différentes jusqu'a ce qu'il arrive au type FIN.
-ensuite je fini en fermant le fichier.
Le problème c'est qu'il n'arrive jamais à trouver l'IP!:aie:
il passe du type SITE au type MASQUE sans trouver le type IP entre les deux alors qu'il est bien présent dans le fichier...:?
C'est probablement dû au fait que je réouvre une lecture ligne par ligne, et il doit sauter une ligne mais je ne sais pas comment régler ce problème :(
Merci d'avance à ceux qui auront pris le temps de lire et de répondre !
Edit: En gros si je fais un juste apres le deuxième while, il me met :
Citation:
SITE
MASQUE
PASSERELLE
DNS
WINS
Donc il fait l'impasse sur l'IP, pour une raison mystérieuse :mur: