06/02-2002 à 09:42Bonjour,
Je ne trouve pas la programmation Perl (ActivePerl sous windows NT 4.0)aussi facile que je le pensais, j'ai donc acheté le livre Total Perl pour m'aider, cependant j'ai encore des difficultés pour résoudre tous les problèmes que je rencontre, donc qui mieux que vous pour éclairer ma lanterne:
j'ai tout d'abord créé le script suivant pour créer un répertoire pour chaque ville à partir d'un fichier texte :
mkdir 'D:\sauvegarde';
open (FILEHANDLE, 'D:\PROJET PERL\projet2\villes.txt') or die "ERREUR OUVERTURE $! \n";
foreach $ligne (<FILEHANDLE>) {
chomp $ligne;
next if (!$ligne);
$sortie = qx(mkdir $ligne);
}
close (FILEHANDLE);
Les répertoires se créent sur le lecteur D: mais je voudrais qu'ils soient dans le répertoire sauvegarde, j'ai bien essayer de mettre un chemin d'accès, ce qui donnait:
$sortie = qx(mkdir 'D:\sauvegarde\$ligne');
Mais cela créé le répertoire $ligne dans sauvegarde et non pas les répertoires pour chaque villes car s'est une variable scalaire, comment faire ???
Mon second problème est pratiquement similaire au premier , je voudrais créer des sous-répertoires pour chaque postes dans le répertoires de la ville auxquelles ils correspondent mais ils apparaissent également directement sur le lecteur D:.
Ensuite j'ai souhaité créer une interface graphique pour ajouter de nouvelles villes dans le fichier texte, j'utilise donc le module Tk, mais je n'arrive pas à faire le liens entre le fichier texte et l'interface graphique, c'est à dire que la saisie faite dans l'interface ne se fait pas dans villes.txt.
use Tk;
my $main = MainWindow->new;
$main->Label(-text => 'Entrer le nom de la nouvelle Agence:',
)->pack;
$text1 = $main->Text ('-width'=>40,'-height' =>2
)->pack;
$main->Label(-text => 'Entrer le nom du nouveau poste:',
)->pack;
$text2 = $main->Text ('-width'=>40,'-height' =>2
)->pack;
$main->Button(-text =>'Ajouter',
-command => Sub {
(<D:\sauvegarde\villes.txt>) ->insert ($text1) ; ----->je pense que c'est faux...
}
)->pack;
$main->Button(-text =>'Sortir',
-command => [$main => 'destroy']
)->pack(-side => "right");
MainLoop;
Mon quatrième soucis, c'est le rapatriement des données des postes distant vers leur répertoires (et oui, pas de commande xcopy pour me sauver)
j'ai lu qu'il fallait utiliser d'autre modules tel que:
-File::Compare
-File::Copy
-File::Find
-File::Path
-File::stat
Leur utilisation n'est pas très clair
Donc si vous avez des solutions à me proposer, n'hésiter pas!!!!
Merci d'avance!!!
----------
Ma config:
* OS: Windows 2000, XP, Debian et Redhat.
* Ram: toujours plus de 256 Mo
* Processeur: toujours plus de 1 Ghz