Traitement de chaines en perl .?

Le forum de l'Annuaire Francophone des Scripts CGI: CGI : Problème avec un script: Traitement de chaines en perl .?

Anonyme

samedi 29 juin 2002 - 19h20
bonjour,

J'essaye de trouver la formule pour remplacer les \n par des <br> et pour l'instant, pas de résultats, si vous aviez une source, ca me serait d'une grand utilité.

merci d'avance
@++

Axdial (Axdial)

samedi 29 juin 2002 - 20h48
Il me semble qu'en mettant dans une variable le texte que tu veux changer, par exemple : $texte, après avec une expression régulière :
$Texte =~ s/\\n/<br>/ig;
ça devrait fonctionner.
après $Texte aura tous ces '\n' remplacer par des <br>
i permet d'éviter la casse
g pour remplacer toutes les occurences,
s est pour signifier un remplacement
j'ai mis deux \ parce que \ est un caractère spécial, il annule le côté spéciale d'un caractère.
=~ indique qu'on va faire une opération d'expression régulière.
Voili voilou, si tu as un pb, n'ésites pas à me contacter, j'adore tout ce qui est expression régulière : ax@axdial.com

Anonyme

dimanche 30 juin 2002 - 00h15
lol, merci d'avoir répondu si vite, je me perdais dans des preg ! et la il est vrai que c'est plus simple.

J'ai trop pris l'habitude de coder en php, j'en ai oublié le peu que je savais en perl :-(

merci @bientot

Anonyme

lundi 01 juillet 2002 - 02h26
et hop la , je revient a nouveau, parce que j'ai testé , et snif, marche pas :-(

en faite le \n que je doit remplacer, c'est le retour a la ligne; donc je pense que le pb provient de la

merci
@++

Axdial (Axdial)

lundi 01 juillet 2002 - 07h31
Alors si ton texte se trouve dans un fichier nomé par exemple : texte.dat.
voilà ce que je te propose :
##########début du script
#!/usr/local/bin/perl
$db="texte.dat";

open (DATABASE, "<$db") || die "Can't open $db: $!\n"; #on ouvre le fichier en lecture
@LINES=<DATABASE>; #on le stoque dans un tableau
close(DATABASE); #on ferme le fichier
$Taille=@LINES; #on récupère le nombre de ligne

for ($i;$i<$Taille;$i++)
{$LINES[$i]=~ s/\n/<br>/g;} #pour chaque ligne on remplace le retour chariot

print "@LINES"; #ça c'est pour vérifier

#########FIN du script

En fait sur ce que j'ai dis avant, il ne faut mettre qu'un seul \. et le i est inutile.
voilà ce que je t'envois là, je viens de le tester, donc ça doit marcher.
Attention, j'ai concidéré que le fichier :texte.dat était dans le même répertoire que le script
la ligne :
#!/usr/local/bin/perl
est biensûr à changer en fonction de ta config.

Anonyme

mercredi 10 juillet 2002 - 18h28
merci pour ta réponse, je vais tester cela ;)

@++


Ajouter un message


Ceci est une zone publique. Si vous n'avez pas de compte, entrez votre nom dans le champ "Identificateur" et laissez le mot de passe vide. Votre adresse E-mail est facultative.
Identificateur :  
Mot de passe :
E-mail :
Poster "anonymement"