Script pour exporter les donnees dans spectrum

anobyv Messages postés 22 Statut Membre -  
[Dal] Messages postés 6373 Statut Contributeur -
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)



A voir également:

3 réponses

[Dal] Messages postés 6373 Statut Contributeur 1 106
 
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
0
anobyv Messages postés 22 Statut Membre
 
Merci beaucoup.

Y a t il un bon livre que tu me conseillerais egalement
0
anobyv Messages postés 22 Statut Membre
 
une petite question : giveSyntax() ça fait quoi exactement ?
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
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
0
anobyv Messages postés 22 Statut Membre
 
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
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
si la fonction n'est pas une fonction Perl standard, elle peut être définie :

1- dans le source qui l'appelle (définition
sub getFilesFolder { code }
)

2- dans un module utilisé par le source qui l'appelle (avec une directive
use
), le code du module lui-même (contenant la définition de
sub 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 type
use 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 directive
do '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
0
anobyv Messages postés 22 Statut Membre
 
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
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
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
0