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

  FORUM HardWare.fr
  Programmation
  Perl

  creation de fichier dans les sous repertoires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

creation de fichier dans les sous repertoires

n°1798597
uriel
blood pt.2
Posté le 11-10-2008 à 17:27:27  profilanswer
 

petit probleme, j'explique ce que je cherche à faire:
-parser les sous repertoire de là où je lance mon script perl et trouver les fichier .coin
-pour chaque fichier .coin je crée un fichier .inp qui contient le nom du fichier .coin dedans et autres info
 
ça parait simple et pour le moment ça fonctionne.... sauf que tous les fichiers .inp sont crées dans le repertoire d'où je lance le script, pas dans les repertoires où sont les .coin et ça c'est pas ce que je veux.
 
mon code fait ça:

Code :
  1. sub findCoinFile {
  2.   if ( (/\.coin$/) ){
  3.       push(@coinfile,"$File::Find::name" );
  4.  }
  5. }


 
donc j'ai bien le nom entier avec path et tout, mais au moment de créer mon nouveau fichier .inp je merde sûrement parce que si j'utilise le $coinfile (dans un foreach) avec une substitution pour remplacer l'extension ça ne fonctionne pas, ça me crée juste tous les .inp dans le repertoire courant :/
 

Code :
  1. open (OUT, ">$coinInput" ) || die "Error to create the file \"$coinInput\": $!";


 
des idées?
 


---------------
IVG en france
mood
Publicité
Posté le 11-10-2008 à 17:27:27  profilanswer
 

n°1798604
Elmoricq
Modérateur
Posté le 11-10-2008 à 17:51:48  profilanswer
 

Zarb. Et dans $coinInput y a bien un chemin de type foo/bar/file.inp ?

n°1798609
uriel
blood pt.2
Posté le 11-10-2008 à 18:02:33  profilanswer
 

oui, à partir du repertoire courant où je lance le script :/


---------------
IVG en france
n°1798615
uriel
blood pt.2
Posté le 11-10-2008 à 18:32:06  profilanswer
 

bon, je colle tout, ça vient sans doute de ma substitution d'extension:

 
Code :
  1. foreach (@coinfile) {
  2. my $coin_file_name=$_;
  3.  
  4. print "processing ",$_,"\n";
  5.  
  6. unless ($coin_file_name) {
  7.    print STDERR "Please enter the name of a .coin file.\n";
  8.    print STDERR "Aborting.\n";
  9.    exit 1;
  10. }
  11. #recover file name
  12. @molecule=split(/\//,$coin_file_name);
  13. $name=$molecule[-1];
  14. $nameInput=$_;
  15. $nameInput=~ s/.coin/_cst.inp/;
  16.  
  17. my $coinInput = $nameInput;
  18. open (OUT, $nameInput) || die "Error to create the file \"$nameInput\": $!";


j'ai aussi besoin du nom du fichier seul, d'où le bidouillage avec @molecule, mais quand je lance le script maintenant, j'ai


processing ./etcooh/etcooh_bp86tzvp_dblcav.coin
Error to create the file "./etcooh/etcooh_bp86tzvp_dblcav_cst.inp": No such file or directory at ./writeCOINInput.pl line 31.


la ligne 31 c'est le 'open'
[:transparency]


Message édité par uriel le 11-10-2008 à 18:32:59

---------------
IVG en france
n°1798625
0x90
Posté le 11-10-2008 à 18:42:16  profilanswer
 

ton . à la ligne 15 n'est pas échappé, je doute que ça vienne de là mais on sait jamais.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1798628
uriel
blood pt.2
Posté le 11-10-2008 à 18:47:50  profilanswer
 

j'avais pas conscience qu'il fallait echappé le .
 j'ai ajouté un \ avant, ça change rien :/


---------------
IVG en france
n°1798638
0x90
Posté le 11-10-2008 à 19:13:46  profilanswer
 

Citation :


The open function takes two arguments: the first is a filehandle, and the second is a single string comprising both what to open and how to open it


 
te manque pas un ">" ( ou "+>" ) devant le nom du fichier ? Sans rien ça défaulte à "<" qui veut dire lecture, donc qui nécéssite que le fichier soit créé.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1798639
uriel
blood pt.2
Posté le 11-10-2008 à 19:16:56  profilanswer
 

Code :
  1. open (OUT, ">$nameInput" )


 
 c'etait ça [:jar jar]
 
je l'ai sur d'autres fichiers en plus, oubli stupide. merci [:romf]


---------------
IVG en france
n°1798642
Elmoricq
Modérateur
Posté le 11-10-2008 à 19:26:49  profilanswer
 

Tu l'as dans le premier post du sujet surtout. [:ineffable]

n°1798643
uriel
blood pt.2
Posté le 11-10-2008 à 19:28:05  profilanswer
 

[:pingouino]
 
 alors à l'origine ça venait de ma substitution, et ensuite de ça [:ciler]


---------------
IVG en france

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

  creation de fichier dans les sous repertoires

 

Sujets relatifs
[VBA] Ouvrir un fichier Excel qui commence par...copier un fichier dans une variable
Compiler une hiérarchie des classes dans des sous-répertoiresEdition de fichier texte.
Création d'un fichier installateurComptabiliser le nombre de fois que se répète un mot dans un fichier
lire des donnees dans un fichier texteVISIBLEMENT Personne ne sait comment déplacer un fichier simplement...
Pourquoi quand je génère mon fichier xml j'ai ces caractères � ? 
Plus de sujets relatifs à : creation de fichier dans les sous repertoires


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