Bonjour,
Je dispose d'un fichier dont le nom est uds18 qui est composé de 150 lignes qui ont le même format.
Voici un exemple avec 2 lignesJe souhaite ouvrir mon fichier uds, pour toutes les lignes, diviser la lignes en deux. Je vais prendre la première partie de la ligne pour créer un fichier à son nom et mettre la seconde partie de la ligne dans ce fichier en ajoutant 0 et 0 sur la premiere puis sur la seconde lignetesta:voiture1280480 680 blanc
testb:camion1561311 871 vert
Voici ce que ça doit me donner
pour le premier fichier, son nom sera testa et il va contenir
et le second fichier, nom sera testb et il va contenir0
0
voiture1280480 680 blanc
Mais ça ne fonctionne pas, voici ce que j'obtiens:0
0
camion1561311 871 vert
Je n'arrive pas à sauter une ligne après le premier 0 de la ligne 1, ni après le second 0 pour tout avoir sur 3 lignes.00voiture1280480 680 blanc
00camion1561311 871 vert
Je vous remercie pour votre aide.
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 #!/usr/bin/perl open(uds18,"uds18") || die ("Problème à l\'ouverture : $!"); $i = 0; while(<uds18>) #voici une boucle pour parcourir tout mon fichier { $i ++; $lignecomplete=$_; #j'affecte chaque ligne à lignecomplete (@maligne) = split(/:/,$lignecomplete); #je coupe ligne complete en 2 apres le : print "voici la decoupe du nom du fichier $maligne[0]\n";#je constate que split fonctionne bien print "voici la decoupe des donnees $maligne[1]\n"; $nomfic = $maligne[0]; $donnees = $maligne[1]; open(nomfic, ">>test.txt") || die ("Problème à l\'ouverture : $!");#creation de mon fichier en ecriture print nomfic 0; #j'ajoute un 0 en premier ligne mais COMMENT SAUTER UNE LIGNE APRES print nomfic 0; #j'ajoute 2ieme 0 en seconde ligne mais COMMENT SAUTER UNE LIGNE APRES print nomfic $donnees; #j'ajoute les donnees ensuite rename ("test.txt","$maligne[0]"); #je renomme mon fichier } print "\nNombre de lignes : $i\n";#c'est un controle close (uds18 || die "Problème à la fermeture : $!");
Partager