problème ouverture de fichier - Perl - Programmation
Marsh Posté le 14-07-2004 à 00:07:17
Code :
|
Marsh Posté le 15-07-2004 à 09:43:47
ç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?
Marsh Posté le 15-07-2004 à 10:15:38
j'ai essayé de mettre le chemin complet de mon fichier devant my @lines donc j'ai my $file = "cProgram 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?
Marsh Posté le 15-07-2004 à 10:20:06
Il faut spécifier que tu veux ouvrir ton fichier en lecture ">"
Code :
|
OU
Code :
|
Marsh Posté le 15-07-2004 à 10:30:19
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
Marsh Posté le 15-07-2004 à 10:36:02
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???
Marsh Posté le 15-07-2004 à 10:37:37
Pour la première méthode, c'est normal, j'ai tapé "mu $lignes" au lieu de "my $lignes" à la ligne 4
Marsh Posté le 15-07-2004 à 10:39:48
Essaye en passant directement le nom de ficher dans la fonction:
open(FIC, "<adresse.txt" ) || die "Probleme $!";
Marsh Posté le 15-07-2004 à 10:40:47
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?
Marsh Posté le 15-07-2004 à 10:44:17
et bien non il ne veut toujours pas m'afficher le contenu, j'ai toujours le même message d'erreur?
Marsh Posté le 15-07-2004 à 10:52:34
Le fichier est-il bien dans le même répertoire que ton script?
Marsh Posté le 15-07-2004 à 11:00:02
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)?
Marsh Posté le 15-07-2004 à 11:06:21
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
Marsh Posté le 15-07-2004 à 12:22:02
Charlux a écrit : Il faut spécifier que tu veux ouvrir ton fichier en lecture ">"
|
non
Marsh Posté le 15-07-2004 à 12:22:41
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
Marsh Posté le 15-07-2004 à 14:47:03
j'ai même essayé avec le path complet et ça ne l'ouvre tjs pas .je n'y comprends rien?
Marsh Posté le 15-07-2004 à 15:22:19
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 = "cadresse.txt";
my $lignes;
open(FIC, "<$file" ) or die "Can't open $file: $!";
while (my $ligne = <FIC> ){
print "$ligne\n";
}
Marsh Posté le 15-07-2004 à 17:48:16
je le répète...
Code :
|
Marsh Posté le 22-07-2004 à 11:48:14
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 '|' ...)
Marsh Posté le 22-07-2004 à 12:04:12
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
Marsh Posté le 22-07-2004 à 12:13:31
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): |
justement au boulot on a du 5.005 (voir meme 5.004) et du 5.8.3
Marsh Posté le 22-07-2004 à 12:14:18
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)
Marsh Posté le 13-07-2004 à 17:17:46
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
#!cperl/bin/perl -w
use win32::process;
use Proc::WaitStat;
use IPC::Open2;
open(FIC,"adresse.txt" );
@contenu=<FIC>;
foreach (@contenu){
chop;
print $_;
}