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

  FORUM HardWare.fr
  Programmation

  [Perl] pb avec fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] pb avec fichier

n°46010
jibix
Posté le 11-07-2001 à 17:57:07  profilanswer
 

voila, j'ai un fichier qui contient des adresses.
Je voudrais parcourir ce fichier mais en même temps comparer chaque ligne à une variable de type string :
 
open (FSOR,'file.txt)
my $motif="www.blabla.com";
my @ligne = <FSOR>;
foreach (@ligne) {
   if ("$_" eq "$motif" ) {
      print "\n <<< $motif >>>";
   }  
}
ce motif existe mais il ne me l'affiche pas donc comment recupére chaque ligne de mon fichier pour être sûre que la comparaison soit valide ?
(www.blabla.com existe dans le fichier , quand je fais une lecture de mon fichier avec $_ je peux le voir)
merci !

mood
Publicité
Posté le 11-07-2001 à 17:57:07  profilanswer
 

n°46040
Fantom
Posté le 11-07-2001 à 23:06:26  profilanswer
 

Tu n'as qu'a faire un affichage de ta ligne courante dans ta boucle...
 
sinon fait la ton foreach comme ca :  foreach $CURRENT_LINE (@ligne)  
 
et pour ton motif, recherche dans la ligne les occurences qui peuvent y ressembler de la maniere suivante :
if ( $CURRENT_LINE =~ $motif )
 
peut etre que ca ira mieux :p

n°46157
jibix
Posté le 12-07-2001 à 11:36:39  profilanswer
 

merci FaNToM !
c'est mon comparateur "eq" qui deconnait
"=~é " marche beaucoup mieux !

n°46273
jibix
Posté le 12-07-2001 à 14:25:35  profilanswer
 

une autre question :
si j'ai une variable par ex:
$text1="yahoo.com/adv/perl"  
 
et que je veux le comparer  
à un $text2="yahoo.com/adv/"
 
lorsque je fais un truc du style :
if ($text2=~ /^$text1/) {...}
ça ne marche pas !
est-ce que l'expression regulière est bonne ??
ce qui m'interesse c'est le "yahoo.com.adv" du moment que cette partie existe dans ma comparaison alors je rentre dans la condition.
merci

n°46312
jibix
Posté le 12-07-2001 à 15:20:42  profilanswer
 

^up :)

n°46436
teagle
¤--ð Free My MiND ð--¤
Posté le 12-07-2001 à 20:12:44  profilanswer
 

T'aurais pas plutôt intérêt à inverser tes 2 variables:
if ($text1=~ /^$text2/) {...}
 
Paceke tu peux pas trouver (vu ton expression régulière) une chaine plus longue dans une chaine plus courte (si t'as compris koi moi dire).
D'après ton truc, tu cherches si yahoo.com/adv/perl ($text1) apparait dans yahoo.com/adv ($text2)... Ca marchera pas...
Ce ki me semble le mieux:
if ($text1 =~ /^$text2.*$/)

n°46480
Fantom
Posté le 12-07-2001 à 23:20:52  profilanswer
 

jibix >  
 
J'ai un doute sur ton test... je pense que tu devrais plutot comparer ta variable par rapport a la chaine de comp cad faire la chose suivante :
 
if ($text1=~ /^yahoo\.com\/adv\//)  
 
J'ai mit la chaine de comp en dur car je veux mettre en evidence que les / et le . peuvent etre mal interpreter lors du test.
 
Je ne dis pas que ca marche mais je pense au moins que ca peut apporter qqc.


---------------
"C'est pour quand ? Pour quand tu ne t'y attendras pas. Ni avant. Ni après. Alors, fais ta vie. Ca viendra."

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

  [Perl] pb avec fichier

 

Sujets relatifs
[Perl]problem avec fonction dans un packageEcrire dans un fichier en C (pas C++, non !)
[HTML] [PHP] et l'envoie de fichier.[JAVA] faire un fichier JAR ?????
php: suppression de fichier[base de donnée] inserer un fichier dans une base
[php] comment mettre a jour un fichier..[PHP] fichier texte : retour chariot
Telechargement d'un fichier[Perl] récuperer dans une variable le contenu d'un fichier HTML
Plus de sujets relatifs à : [Perl] pb avec fichier


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