Bonjour ,
J'ais extrait d'un fichier dns les adresse des reseau (elles étaient en commentaire) malheuresement certaines sont de la forme 127.25.x.x 132.56.X.y ou encore 127.0.2.x et je voudrais les avoir toutes sous la forme 125.32.0.0.
Je veut donc remplacer les lettres contenues dans les adresse par des zero :
J'ai efféctué le code suivant :
Mais il ne fonctionne que pour la première ligne du fichier
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 $i=0; while($lines = <FICH>){ #si la ligne est du type : '<;*** - 2 ou + espaces - chaîne de caractére - 1 ou + espaces - chaines de caractére> if($lines =~ /;\*\*\*\s{2,}(.+?)\s+(.+)/) { #On memorise les variables temporaire $adresse=$1; $nom=$2; #Test si l'adresse est du type 127.2.x.x pour le transformer en 127.2.0.0 if($adresse=~/\w.\w.[a-z].[a-z]/) { $adresse=~s/[a-z].[a-z]/0.0/g; #Remplacement des x.x par 0.0 } #on retire les espaces et les ;*** et on inscrit le resultat deu traitemant dans le fichier print(FICHOUT "$adresse;$nom\n"); $i++; #Incrémentation du nombre de reseau trouvé dans le fichier } }alors que la modif est située dans la boucle qui parcourt le fichier. Je ne voit pas pourquoi ? ?
Pourriez jeté un petit coup d'oeil rapide , quand on a un point de vu exterieur c'est plus claire et facile.Ce n'est pas évident de l'avoir sur ses propre travaux.
Je continue de reflechir au probléme
Merci d'avance
Partager