Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
703 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [perl] remplacer les \n par des <br> dans un fichier ...

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[perl] remplacer les \n par des <br> dans un fichier ...

n°483592
tigger59
jeune homme irrascible
Posté le 11-08-2003 à 15:21:05  profilanswer
 

salut
j'ai un fichier .csv de la forme
 
"1";"texte1";"texte2";"0"
"2";"texte1";"texte2";"0"
"3";"texte1
sur
plusieurs
lignes";"texte2
sur plusieurs
lignes";"0"
 
je voudrais mettre chaque enregistrement sur une seule ligne en remplacant tous les \n par des <br> sauf si le \n est suivi et precedé par un doublequote
j'ai essayé  
 if ($_ =~ /"\n"/)
et  
 if ($_ =~ /"\"\n\""/)
sans succès .... une idée ?

mood
Publicité
Posté le 11-08-2003 à 15:21:05  profilanswer
 

n°484322
burgergold
5$? va chez l'diable!
Posté le 12-08-2003 à 01:29:05  profilanswer
 

truc du genre
 
$var =~ s/\\n/<br>/g;
 
pas testé mais ca doit pas etre loin
 
le s c pour remplacer, entre le 1er et le 2e /, tu indique c quoi tu remplace, entre le 2e et le 3e tu indique par quoi, et finilament le g jcrois que c pour l'appliquer à tout les occurences


---------------
http://www.boincstats.com/signature/user_664861.gif
n°484398
Aricoh
gentil mais fo po pousser
Posté le 12-08-2003 à 08:13:36  profilanswer
 

burgergold a écrit :

truc du genre
 
$var =~ s/\\n/<br>/g;
 
pas testé mais ca doit pas etre loin
 
le s c pour remplacer, entre le 1er et le 2e /, tu indique c quoi tu remplace, entre le 2e et le 3e tu indique par quoi, et finilament le g jcrois que c pour l'appliquer à tout les occurences

s pour substitute
g pour global
ce que tu as écrit devrait marcher


---------------
j'suis l'Duc des 7 Enfers Éternels ...
n°484510
tigger59
jeune homme irrascible
Posté le 12-08-2003 à 09:33:29  profilanswer
 

$variable =~ s/\n/<br>/g;
fonctionne en effet, ca me remplace tous les \n par <br>, cependant ce que je veux remplacer c'est seulement les \n encadrés par des " pour que mon fichier devienne :
 
"1";"texte1";"texte2";"0"
"2";"texte1";"texte2";"0"
"3";"texte1<br>sur<br>plusieurs<br>lignes";"texte2<br>sur<br>plusieurs<br>lignes";"0"  
 
$variable =~ s/"\n"/<br>/g; a pas l'air de marcher
$variable =~ s/\"\n\"/<br>/g; non plus
 

n°484516
Aricoh
gentil mais fo po pousser
Posté le 12-08-2003 à 09:37:07  profilanswer
 

tigger59 a écrit :

$variable =~ s/\n/<br>/g;
fonctionne en effet, ca me remplace tous les \n par <br>, cependant ce que je veux remplacer c'est seulement les \n encadrés par des " pour que mon fichier devienne :
 
"1";"texte1";"texte2";"0"
"2";"texte1";"texte2";"0"
"3";"texte1<br>sur<br>plusieurs<br>lignes";"texte2<br>sur<br>plusieurs<br>lignes";"0"  
 
$variable =~ s/"\n"/<br>/g; a pas l'air de marcher
$variable =~ s/\"\n\"/<br>/g; non plus


ok alors si $variable contient l'intégralité des données, essaie ceci pour voir :
 

Code :
  1. $variable =~ s/\"\n\"/<br>/g;


---------------
j'suis l'Duc des 7 Enfers Éternels ...
n°484524
tigger59
jeune homme irrascible
Posté le 12-08-2003 à 09:40:47  profilanswer
 

non plus j'avais deja essayé  :sweat:

n°484527
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-08-2003 à 09:42:19  profilanswer
 

Je pense qu'Aricoh voulait plutot dire quelque chose comme ça:

Code :
  1. $variable =~ s/\"(.*?)\n(.*?)\"/"$1<br>$2"/g;

n°484535
Aricoh
gentil mais fo po pousser
Posté le 12-08-2003 à 09:45:51  profilanswer
 

Anapajari a écrit :

Je pense qu'Aricoh voulait plutot dire quelque chose comme ça:

Code :
  1. $variable =~ s/\"(.*?)\n(.*?)\"/"$1<br>$2"/g;



heu :sweat: heureusement que tu es là, j'avais pas lu l'exemple de données complètement, I am a big naze today  :(


---------------
j'suis l'Duc des 7 Enfers Éternels ...
n°486869
d_wrk
Posté le 14-08-2003 à 10:12:00  profilanswer
 

Sauf que la dernière solution ne fonctionne que pour un seul \n au milieu d'un texte non ?
ou alors le /g fait que le filtre tourne en boucle jusqu'à avoir remplacé toutes les occurences ?
 
d


Message édité par d_wrk le 14-08-2003 à 10:12:32
n°486872
urd-sama
waste of space
Posté le 14-08-2003 à 10:13:23  profilanswer
 

d_wrk a écrit :


ou alors le /g fait que le filtre tourne en boucle jusqu'à avoir remplacé toutes les occurences ?


:jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [perl] remplacer les \n par des <br> dans un fichier ...

 

Sujets relatifs
Récupérer une variable dans un autre fichier ?[php] ecrire sur un fichier pdf existant (pas le modifier)
Proposer un fichier créé dynamiquement en téléchargement[batch] concaténer date et nom fichier
Afficher sur mon site les données recuperer sur un fichier xml.Copie de fichier (au sens cp Unix)
[vbscript] - supprimer une ligne dans un fichierun script pour telecharger un fichier .txt sur un ftp toute les 2 h
[SQL] visualiser un fichier .sqlInclusion d'un fichier texte dans un <textarea> ...
Plus de sujets relatifs à : [perl] remplacer les \n par des <br> dans un fichier ...


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR