programmation Perl

06/02-2002 à 09:42Bonjour, image
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 image image

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



06/02-2002 à 12:06mkdir ("d:\sauvegarde");
chdir ("d:\sauvegarde");
open (FILEHANDLE, 'D:\PROJET PERL\projet2\villes.txt') or die "ERREUR OUVERTURE $! \n";
$line = <FILEHANDLE>;
while ($line ne ""){
chomp $line;
mkdir ($line);
$line = <FILEHANDLE>;
}
close (FILEHANDLE);

voici pour creer les repertoires en fonction d'un TXT
ce qui devait te manquer c le CHDIR qui definit le repertoire de travail, ce qui devrait aussi resoudre ton second probleme ;o)

je connais pas le module TK et javoue ne pas avoir le courage ni le temps de m'y mettre pour te repondre jespere que tu comprendras ;o)

ton quatrieme probleme si g bien compris c de rapatrier des fichiers distants et de les copier sur tamachine pour les traiter ?
dans ce cas au lieu de copier tu peux contourner le probleme en lisant les ficheirs distants et en les recréant sur ta machine si ce sont des txt par exemple, sinon oui il faut utiliser d'autres modules mais ca fait longtemps que je n'ai pas fait de perl donc mes connaissances sont un peu rouillées ;o))))


programmation Perl
07/02-2002 à 08:42Merci Beaucoup Charnanpsy, cela m'a beaucoup aidé!!!!


----------
Ma config:
* OS: Windows 2000, XP, Debian et Redhat.
* Ram: toujours plus de 256 Mo
* Processeur: toujours plus de 1 Ghz


07/02-2002 à 16:20de rien ;o)

Merci de vous identifier

« Forum technique (liste des messages)4 enregistrements / page 1/1