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

  FORUM HardWare.fr
  Programmation
  Perl

  problème ouverture de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème ouverture de fichier

n°794980
ladym
Posté le 13-07-2004 à 17:17:46  profilanswer
 

bonjour,  
voila j'ai fait un petit script pour ouvrir un fichier et quand je fais un script pour voir ce qu'il y a dans mon fichier , je n'ai rien qui s'affiche alors que mon fichier existe.j'ai cette erreure qui s'affiche:
readline()on closed filehandle FIC at test.pl on line 7
que veut dire cette erreur est ce que mon fichier n'existe pas?en tout cas rien ne s'affiche, est ce normale?
voici le petit script.merci de votre aide
 
#!c:/perl/bin/perl -w
use win32::process;
use Proc::WaitStat;
use IPC::Open2;
 
open(FIC,"adresse.txt" );
@contenu=<FIC>;
 
foreach (@contenu){
chop;
print  $_;
 
}

mood
Publicité
Posté le 13-07-2004 à 17:17:46  profilanswer
 

n°795338
burgergold
5$? va chez l'diable!
Posté le 14-07-2004 à 00:07:17  profilanswer
 


Code :
  1. use strict;
  2. my $file = "adresse.txt";
  3. open(FIC, $file) or die "Can't open $file: $!";
  4. my @lines = <FIC>;
  5. close(FIC);
  6. foreach my $line (@lines) {
  7.   $line =~ s/\r\n//g; # retire les retours de ligne
  8.   print $line;
  9. }


---------------
http://www.boincstats.com/signature/user_664861.gif
n°796039
ladym
Posté le 15-07-2004 à 09:43:47  profilanswer
 

ça ne marche pas, il ne m'affiche pas ce que j'ai dans adresse.txt, il m'affiche "can't open adresse.txt No such file or directory" or que le fichier existe, comment faire?

n°796088
ladym
Posté le 15-07-2004 à 10:15:38  profilanswer
 

j'ai essayé de mettre le chemin complet de mon fichier devant my @lines donc j'ai my $file = "c:/Program Files/VideoLAN/VLC/adresse.txt";  
Mais ça ne marche toujours pas?est ce que c'est parcque je travaille sous windows(activeperl 5.6)?existe il une autre fonction pour ouvrir les fichiers specifique à windows?

n°796093
Charlux
Posté le 15-07-2004 à 10:20:06  profilanswer
 

Il faut spécifier que tu veux ouvrir ton fichier en lecture ">"
 

Code :
  1. use strict;
  2.  
  3. my $file = "adresse.txt";
  4. mu $lignes;
  5.  
  6. open(FIC, "<$file" ) or die "Can't open $file: $!";
  7.  
  8. while (my $ligne = <FIC> ){
  9.       print "$line\n";
  10. }


 
OU
 

Code :
  1. use strict;
  2.  
  3. my $file = "adresse.txt";
  4. mu @lignes;
  5.  
  6. open(FIC, "<$file" ) or die "Can't open $file: $!";
  7. @lignes = <FIC>;
  8. print "@lignes";
  9. print "$line\n";

n°796116
ladym
Posté le 15-07-2004 à 10:30:19  profilanswer
 

merci, j'ai essayé la première méthode j'ai le message d'erreur suivant:
Global symbol "$lignes" requires explicite package name at test.pl line 11
Global symbol "$line" requires explicite package name at test.pl line 16

n°796126
ladym
Posté le 15-07-2004 à 10:36:02  profilanswer
 

j'en reviens toujours au même problème, c'est à dire le même message d'erreur:"can't open adresse.txt No such file or directory" alors que ce fichier existe???

n°796127
Charlux
Posté le 15-07-2004 à 10:37:37  profilanswer
 

Pour la première méthode, c'est normal, j'ai tapé "mu $lignes" au lieu de "my $lignes" à la ligne 4

n°796130
ladym
Posté le 15-07-2004 à 10:39:36  profilanswer
 

oui j'avais remarqué et je l'ai rectifie

n°796131
Charlux
Posté le 15-07-2004 à 10:39:48  profilanswer
 

Essaye en passant directement le nom de ficher dans la fonction:
 
open(FIC, "<adresse.txt" ) || die "Probleme $!";

mood
Publicité
Posté le 15-07-2004 à 10:39:48  profilanswer
 

n°796133
ladym
Posté le 15-07-2004 à 10:40:47  profilanswer
 

et c'est toujours le même pb il me dit qu'il ne peut pas ouvrir le fichier adresse.txt car il n'existe pas?

n°796134
ladym
Posté le 15-07-2004 à 10:41:02  profilanswer
 

ok

n°796137
ladym
Posté le 15-07-2004 à 10:44:17  profilanswer
 

et bien non il ne veut toujours pas m'afficher le contenu, j'ai toujours le même message d'erreur?

n°796149
Charlux
Posté le 15-07-2004 à 10:52:34  profilanswer
 

Le fichier est-il bien dans le même répertoire que ton script?


Message édité par Charlux le 15-07-2004 à 10:53:17
n°796157
ladym
Posté le 15-07-2004 à 10:58:13  profilanswer
 

oui

n°796162
ladym
Posté le 15-07-2004 à 11:00:02  profilanswer
 

même qd j'esseye de mettre le chemin en entier ça ne marche pas?je sais pas si c'est parceque je travaille sous windows (activeperl 5.6)?

n°796169
Charlux
Posté le 15-07-2004 à 11:06:21  profilanswer
 

Là, je ne peux plus d'aider. Moi, sous ma machine (RedHat) la première solution que je t'ai proposée (avec correction sur les fautes de frappes) marche.
Je ne sais pas si ça peux venir d'ActivePerl.
Désolée

n°796196
ladym
Posté le 15-07-2004 à 11:21:14  profilanswer
 

merci quand même

n°796268
burgergold
5$? va chez l'diable!
Posté le 15-07-2004 à 12:22:02  profilanswer
 

Charlux a écrit :

Il faut spécifier que tu veux ouvrir ton fichier en lecture ">"
 

Code :
  1. use strict;
  2.  
  3. my $file = "adresse.txt";
  4. mu $lignes;
  5.  
  6. open(FIC, "<$file" ) or die "Can't open $file: $!";
  7.  
  8. while (my $ligne = <FIC> ){
  9.       print "$line\n";
  10. }


 
OU
 

Code :
  1. use strict;
  2.  
  3. my $file = "adresse.txt";
  4. mu @lignes;
  5.  
  6. open(FIC, "<$file" ) or die "Can't open $file: $!";
  7. @lignes = <FIC>;
  8. print "@lignes";
  9. print "$line\n";



 
non   :o


---------------
http://www.boincstats.com/signature/user_664861.gif
n°796269
burgergold
5$? va chez l'diable!
Posté le 15-07-2004 à 12:22:41  profilanswer
 

ladym a écrit :

ça ne marche pas, il ne m'affiche pas ce que j'ai dans adresse.txt, il m'affiche "can't open adresse.txt No such file or directory" or que le fichier existe, comment faire?


 
 
tu reprends mon code, et tu relis le message d'erreur
 
No such file or directory -> le fichier est surement pas présent
 
mets deja le path complet  :sarcastic:


Message édité par burgergold le 15-07-2004 à 12:23:14

---------------
http://www.boincstats.com/signature/user_664861.gif
n°796391
ladym
Posté le 15-07-2004 à 14:47:03  profilanswer
 

j'ai même essayé avec le path complet et ça ne l'ouvre tjs pas .je n'y comprends rien?

n°796444
ladym
Posté le 15-07-2004 à 15:22:19  profilanswer
 

je me suis dis que ça ne marchait peut être pas parce que je mettais le tout dans programme, j'ai donc deplacé mes fichiers à la racine et en indiquant le chemin complet. et j'ai toujours le même message d'erreur?
 
use strict;  
     
  my $file = "c:/adresse.txt";  
  my $lignes;  
     
  open(FIC, "<$file" ) or die "Can't open $file: $!";  
     
  while (my $ligne = <FIC> ){  
          print "$ligne\n";  
  }

n°796788
burgergold
5$? va chez l'diable!
Posté le 15-07-2004 à 17:48:16  profilanswer
 

je le répète...
 

Code :
  1. use strict;
  2. my $file = 'C:\adresse.txt';
  3. open(FIC, $file) or die "Can't open $file: $!";
  4. my @lines = <FIC>;
  5. close(FIC);
  6. foreach my $line (@lines) {
  7.   print $line;
  8. }


Message édité par burgergold le 16-07-2004 à 00:24:22
n°802776
ladym
Posté le 22-07-2004 à 09:47:48  profilanswer
 

ok merci

n°802940
pospos
Posté le 22-07-2004 à 11:48:14  profilanswer
 

je vous conseil de toujorus utiliser la version à trois argument de open (à moins que vous vouliez que votre code tourne sous perl 5.005):
 
open(FIC, '<', $file) or die;
 
c'est plus rapide et plus safe (surtout si vous ne savez pas d'ou vient la variable $file, car ou peut facilement y ajouter des '>' ou meme '|' ...)

n°802967
ladym
Posté le 22-07-2004 à 12:04:12  profilanswer
 

Ok merci ça marche, mais comme je suis habitué à la méthode 2 arguments, je préfère la garder car je me sens plus à l'aise

n°802981
burgergold
5$? va chez l'diable!
Posté le 22-07-2004 à 12:13:31  profilanswer
 

pospos a écrit :

je vous conseil de toujorus utiliser la version à trois argument de open (à moins que vous vouliez que votre code tourne sous perl 5.005):
 
open(FIC, '<', $file) or die;
 
c'est plus rapide et plus safe (surtout si vous ne savez pas d'ou vient la variable $file, car ou peut facilement y ajouter des '>' ou meme '|' ...)


 
:D
 
justement au boulot on a du 5.005 (voir meme 5.004) et du 5.8.3

n°802984
pospos
Posté le 22-07-2004 à 12:14:18  profilanswer
 

ladym a écrit :

Ok merci ça marche, mais comme je suis habitué à la méthode 2 arguments, je préfère la garder car je me sens plus à l'aise

je te conseil de l'abonadonner, c'est un nid à emmerdes
 
avec trois arguments c'est exactement pareil, mais tu es sur ce ce qui va se passer (et en plus c'est plus rapide à l'exacution)


Message édité par pospos le 22-07-2004 à 12:14:49
mood
Publicité
Posté le   profilanswer
 


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

  problème ouverture de fichier

 

Sujets relatifs
automatiser la fermeture d'une application après transfert de fichierProblème validation fichier CSS par le WC3
probleme de newbie vis a vis de la lecture d un fichier txt....[CSS] Probleme de mise en page
probleme de variable avec les submit ...execution d'un fichier php
Problème d'ouverture de fichier[PHP] Problème d'ouverture de fichier : il me propose 2 fois d'ouvrir
problème d'ouverture de fichier [résolu]Html+Js petit problème tt con d'ouverture de fichier html
Plus de sujets relatifs à : problème ouverture de fichier


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