Salut,
Alors voilà j'ai un fichier texte de cette forme :
Voici mon algorithme de lecture du fichier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
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
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; } }
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.
Partager