Script pour exporter les donnees dans spectrum
anobyv
Messages postés
22
Statut
Membre
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en stage de fin d'etudes et le travail demandé et de comprendre comment fonctionne le script "Export_Spectrum_v1.47.pl" qui est un script qui va extraire des données dans SPECTRUM et en sortie fournit un fichier csv probablement qui est prêt à être importé dans eHealth , cacti ou LMS
Sachant que je viens de débuter en scripting Perl et j'ai pas assez de documentation sur spectrum
SVP votre aide est la bienvenue (peut vous fournir le script)
Je suis en stage de fin d'etudes et le travail demandé et de comprendre comment fonctionne le script "Export_Spectrum_v1.47.pl" qui est un script qui va extraire des données dans SPECTRUM et en sortie fournit un fichier csv probablement qui est prêt à être importé dans eHealth , cacti ou LMS
Sachant que je viens de débuter en scripting Perl et j'ai pas assez de documentation sur spectrum
SVP votre aide est la bienvenue (peut vous fournir le script)
3 réponses
-
Salut anobyv,
S'agissant de Perl, forme toi sur Perl :
https://formation-perl.fr/guide-perl.html (ou un autre cours)
et utilise Perldoc : https://perldoc.perl.org/
Si tu as des questions précises sur Perl, tu peux les poser ici.
S'agissant de Spectrum, que je ne connais pas, demande la documentation à la boite pour laquelle tu travailles, et étudies la.
Dal -
Merci beaucoup.
Y a t il un bon livre que tu me conseillerais egalement -
une petite question : giveSyntax() ça fait quoi exactement ?
-
giveSyntax()
n'est pas une fonction Perl standard, une recherche sur Perldoc ne renvoie rien du tout : http://perldoc.perl.org/search.html?q=givesyntax
Pour les livres, il y en a beaucoup, mais un livre de référence est " Programming Perl" chez O'Reilly,, co-écrit par Larry Wall, inventeur du langage.
La 4ème édition est sortie en 2012, mais je crois qu'elle n'est disponible qu'en anglais à l'heure actuelle (en français, le titre est " Programmation en Perl", mais la 3ème édition date de 2001).
Dal -
Justement à propos des fonctions qui ne sont pas des fonctions Perl standard....je comprends pas comment ça se passe car j'en ai dans mon script à analyser
ex :
$loggingDir = "E:/Exploitation/";
@sentFiles=getFilesFolder($loggingDir,sent);
là aussi j'ai getFilesFolder() qui n'est pas une fonction Perl standard -
si la fonction n'est pas une fonction Perl standard, elle peut être définie :
1- dans le source qui l'appelle (définitionsub getFilesFolder { code })
2- dans un module utilisé par le source qui l'appelle (avec une directiveuse
), le code du module lui-même (contenant la définition desub getFilesFolder { code }) se trouve alors installé sur le système dans un emplacement standard, l'emplacement des emplacements indiqué par la variable @INC
3- dans un module non installé dans un emplacement standard, mais dont l'emplacement est ajouté dans le code lui-même à @INC, avec une directive du typeuse lib '/chemin/vers/module';
, la directive lib t'indique alors où se trouve ton module
si tu es dans le cas 2, tu peux déterminer l'emplacement où se situe un module donné de la façon suivante :
par exemple, si tu as
use HTTP::Request
a la ligne de commande, tu lances :
perl -MHTTP::Request -e'print $INC{"HTTP/Request.pm"} . "\n"'
et sur mon système (Linux Debian), cela donne :
/usr/share/perl5/HTTP/Request.pm
Tu vas ensuite ouvrir le fichier /usr/share/perl5/HTTP/Request.pm pour savoir ce qu'il contient
4- Il y a éventuellement une autre façon de faire, permettant d'inclure dans un source l'exécution du source d'un autre scipt Perl, cependant son usage est découragé. Cela se fait avec une directivedo 'monfichier.pl';
. Si tu es dans ce cas, tu as directement le nom et l'emplacement du fichier ainsi "inclus".
Tu dois trouver le fichier qui contient "sub getFilesFolder" sur ton système.
Dal -
Merci Dal,
Effectivement j'étais dans le cas 2 et je me suis amusé à aller voir l'emplacement de tous les modules que mon script utilise.
J'ai une autre question
$cipher->start('decrypting');
while (read(ENCRYPTED,$buffer,1852)) {
$decryptedText=$cipher->crypt($buffer);
}
$decryptedText.=$cipher->finish;
est ce que je peux remplacer ce bout de code par :
while (read(ENCRYPTED,$buffer,1852)) {
$decryptedText=$cipher->encrypt($buffer);
}
anobyv -
Il semblerait que tu utilises un module de chiffrement (pour déchiffrer, en l'occurrence).
S'il s'agit de modules disponibles publiquement, il y a des changes qu'ils soient sur CPAN : https://www.cpan.org/
Par exemple :
- Crypt::CBC : https://metacpan.org/pod/release/LDS/Crypt-CBC-2.33/CBC.pm
- ou Crypt::ECB : https://metacpan.org/pod/release/APPEL/Crypt-ECB-1.45/ECB.pm
Tu peux accéder à leur documentation et te faire une idée.
Par exemple, si ton module est bien Crypt::CBC, la méthode "start" n'est pas optionnelle : https://metacpan.org/pod/release/LDS/Crypt-CBC-2.33/CBC.pm#start%28%29
Dal
-