[PERL] Expressions régulières

Expressions régulières [PERL] - Programmation

Marsh Posté le 14-01-2002 à 16:55:58    

bon ca commence à prendre la tête ce truc !
 
Voila g un fichier texte que je voudrais parser, voila la tronche du fichier:
 
13/01/2001,00:05,Va te coucher !,1
13/01/2002,00:06,Va te coucher !,1
13/01/2003,00:07,Va te coucher !,1
13/02/2001,00:08,Va te coucher !,1
13/03/2001,00:09,Va te coucher !,1
13/04/2001,00:15,Va te coucher !,1
13/01/2001,00:05,Va te coucher !,1
 
le type, par ligne est donc : <string>,<string>,<string>,<string>
 
Pour le parser j'utilise l'instruction readline
et la regexp suivante :
 
$ligne =~ /(.*)\,(.*)\,(.*)\,(.*)\n/;  # date,heure,note,alert
 
bon pb ca marche pas evidemment ...
Je nuis pas trop familié avec les exp reguliere avec perl, si kk1 à une meilleur idée ??
merci

Reply

Marsh Posté le 14-01-2002 à 16:55:58   

Reply

Marsh Posté le 15-01-2002 à 12:52:52    

13/01/2001,00:05,Va te coucher !,1  
 
$ligne =~ /(.*),(.*),(.*),(.*)/;  # date,heure,note,alert

Reply

Marsh Posté le 15-01-2002 à 16:18:05    

yop,yop ... marche po ton truc
 
je pensais plutot à un pb au niveau des caractere generiques

Reply

Marsh Posté le 15-01-2002 à 16:21:59    

:lol: ligne =~ /(.*),(.*),(.*),(.*)/;  # date,heure,note,alert  :lol:  
desolé g commencer comme ca
 
bon rien de plus simple demo :
$toto = "13/01/2001,00:05,Va te coucher !,1";
@result =~ split (/,/,$toto);
 
ensuite tu traite @result qui contient tout les résultats  :ouch:  
aussi $result[0] contient 13/01/2001
$result[1] = 1\n;
 
c koi le \n  
c le retour chariot à la fin de la ligne
pour l'enlever tu fait
$result[1] =~ s/[\n\r]//sg;
et voila $result[1] contient 1;
qui pour info peut etre traité comme un integer :D
VIVI PERL  :D

 

[edtdd]--Message édité par SteF_DOBERMANN--[/edtdd]


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 15-01-2002 à 16:24:58    

ok dak !
j'vais tester, merci pour tes lumières ...

Reply

Marsh Posté le 15-01-2002 à 18:20:38    

alors marche ou pas ??
 
si tu veux un autre coup de main ou de pieds pas de pb je suis la
ou juste une optimisation de code (sans aucune grosse tete de ma pars  :jap: )
l'histoire de te montrer la puissance du langage  :D


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 16-01-2002 à 16:29:36    

ouep nan ca marche :)
 
juste le "~" de "@result =~ split (/,/,$toto); "
 
qui n'est plus a sa place a ce moment la ...
sinon c ok, j'ai pu continuer mon truc... jusqu'à la prochaine prise de tete :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed