Gérer les espace vide dans un fichier texte
Salut,
Alors voilà j'ai un fichier texte de cette forme :
Code:
1 2 3 4 5 6 7 8
|
AncienneIP NouvelleIP MASK Passerelle
192.6.6.89 255.255.255.255 255.255.255.0 192.6.6.10
220.23.23.1 25.21.20.10 255.255.255.0 192.6.6.10
223.1.0.212 192.6.6.89 255.255.255.0 192.6.6.10
123.21.20.5 23.25.65.47 255.255.255.0 192.6.6.10 |
Voici mon algorithme de lecture du fichier :
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
|
bool lireFichierConfig()
{
ifstream fichier("config.txt",ios_base::in);
if(fichier)
{
string ligne;
while(!fichier.eof())
{
getline(fichier,ligne);
fichier >> ::ancienneIP >> ::nouvelleIP >> ::mask >> ::passerelle;
if(::ancienneIP==::ip)
break;
}
Color(10,0);
cout << "OK : IP trouve dans le fichier config.txt." << endl;
Color(15,0);
cout << "---------------------------------------------------------" << endl;
cout << "Ancienne IP de la machine : ";
Color(12,0);
cout << ::ancienneIP << endl;
Color(15,0);
cout << "Nouvelle IP de la machine : ";
Color(10,0);
cout << ::nouvelleIP << endl;
Color(15,0);
cout << "Mask de la machine : ";
Color(10,0);
cout << ::mask << endl;
Color(15,0);
cout << "Passerelle de la machine : ";
Color(10,0);
cout << ::passerelle << endl;
Color(15,0);
cout << "---------------------------------------------------------" << endl << endl;
return true;
}
else
{
Color(12,0);
cout << "Erreur : Impossible de trouver le fichier config.txt." << endl;
Color(15,0);
return false;
}
} |
Or lorsque j'aqquiert les valeurs il me faut obligatoirement les 4 dans une ligne sinon toutes le données se retrouve décalées car le programme enleves les espaces vides.
Ce programme a pour but de changer l'ip de la machine dont le nom "ancienneIP" se trouve dans le fichier texte par l'ip "nouvelleIP" ainsi que le MASK et la passerelle via la commande netsh.
Imaginons qu'une machine n'est pas de passerelle ?
Comment peut on faire pour que le programme gerre ligne par ligne et qu'il range juste un "espace" dans la variable ::passerelle si celle ci n'est pas mentionné dans le fichier ?
J'aimerais aussi que le programme puisse gérer les lignes de commentaires. (Comme dans les fichiers hosts de windows a peut près) Si l'on met un #devant le programme ne prend pas en compte la ligne.
Merci d'avance pour votre aide,
++
Barbuslex.