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

  FORUM HardWare.fr
  Programmation
  Perl

  Aide sur l'execution d'un code en perl

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide sur l'execution d'un code en perl

n°2033415
houly75
Posté le 01-11-2010 à 10:10:28  profilanswer
 

BOnjour à tous,
J'aurais besoin de votre aide pour tenter de faire fonctionner et comprendre un script écrit en perl. Il permet de générer des screenshot d'écrans LCD en .gif. Seulement il doit y avoir des choses à faire passer en arguments dans des fonctions ou bien peut être avoir des bibliothèques, le fait est qu'il me met toujours la même erreur lorsque je l'execute sur mon Mac.
 
Pourriez-vous m'aider ?
voici le code en question :
http://www.ucapps.de/midibox_seq/gen_mbseqv4_screens
 
merci à vous.

mood
Publicité
Posté le 01-11-2010 à 10:10:28  profilanswer
 

n°2033419
gilou
Modérateur
Modzilla
Posté le 01-11-2010 à 11:44:25  profilanswer
 

Si on met ceci à la fin en commentaire:

Code :
  1. if( $convert_gif )
  2.   {
  3.      # system("convert ${output_file}.xpm ${output_file}.gif" ) && die ("convert failed!\n" );
  4.      # system("rm ${output_file}.xpm" );
  5.   }


Ca crée (il faut avoir créé un répertoire cs4 a l'endroit du script) ceci:

Citation :

Writing 'cs4/tmp_layers.xpm'...
Writing 'cs4/session_main.xpm'...
Writing 'cs4/session_open.xpm'...
Writing 'cs4/session_saveas.xpm'...
Writing 'cs4/session_new.xpm'...
Writing 'cs4/session_exist.xpm'...
Writing 'cs4/edit1.xpm'...
Writing 'cs4/edit2.xpm'...
Writing 'cs4/edit3.xpm'...
Writing 'cs4/edit4.xpm'...
Writing 'cs4/edit5.xpm'...
Writing 'cs4/edit6.xpm'...
Writing 'cs4/edit7.xpm'...
Writing 'cs4/edit8.xpm'...
Writing 'cs4/edit9.xpm'...
Writing 'cs4/edit10.xpm'...
Writing 'cs4/edit11.xpm'...
Writing 'cs4/edit12.xpm'...
Writing 'cs4/edit_d1.xpm'...
Writing 'cs4/edit_d2.xpm'...
Writing 'cs4/edit_d3.xpm'...
Writing 'cs4/trksel1.xpm'...
Writing 'cs4/parsel1.xpm'...
Writing 'cs4/trgsel1.xpm'...
Writing 'cs4/stepsel1.xpm'...
Writing 'cs4/trkevent1.xpm'...
Writing 'cs4/trkevent2.xpm'...
Writing 'cs4/trkevent3.xpm'...
Writing 'cs4/trkevent4.xpm'...
Writing 'cs4/trkevent5.xpm'...
Writing 'cs4/trkmode1.xpm'...
Writing 'cs4/trkdir1.xpm'...
Writing 'cs4/trkdir2.xpm'...
Writing 'cs4/trkdiv1.xpm'...
Writing 'cs4/trklen1.xpm'...
Writing 'cs4/trktran1.xpm'...
Writing 'cs4/trkgrv1.xpm'...
Writing 'cs4/trkgrv2.xpm'...
Writing 'cs4/trgasg1.xpm'...
Writing 'cs4/manualtrg1.xpm'...
Writing 'cs4/trkmorph1.xpm'...
Writing 'cs4/bpm1.xpm'...
Writing 'cs4/bpm2.xpm'...
Writing 'cs4/save1.xpm'...
Writing 'cs4/save2.xpm'...
Writing 'cs4/save3.xpm'...
Writing 'cs4/metronome1.xpm'...
Writing 'cs4/midi1.xpm'...
Writing 'cs4/midi2.xpm'...
Writing 'cs4/midi3.xpm'...
Writing 'cs4/midi4.xpm'...
Writing 'cs4/midi4_usb4.xpm'...
Writing 'cs4/midi5.xpm'...
Writing 'cs4/midi6.xpm'...
Writing 'cs4/record1.xpm'...
Writing 'cs4/util1.xpm'...
Writing 'cs4/mixer1.xpm'...
Writing 'cs4/mixer2.xpm'...
Writing 'cs4/opt1.xpm'...
Writing 'cs4/trkrnd1.xpm'...
Writing 'cs4/mute1.xpm'...
Writing 'cs4/mute2.xpm'...
Writing 'cs4/pattern1.xpm'...
Writing 'cs4/song1.xpm'...
Writing 'cs4/song2.xpm'...
Writing 'cs4/mute_01.xpm'...
Writing 'cs4/mute_02.xpm'...
Writing 'cs4/mute_03.xpm'...
Writing 'cs4/disk1.xpm'...
Writing 'cs4/disk_i1.xpm'...
Writing 'cs4/disk_p1.xpm'...
Writing 'cs4/disk_e1.xpm'...
Writing 'cs4/disk_e2.xpm'...
Writing 'cs4/disk_e3.xpm'...
Writing 'cs4/disk_e4.xpm'...
Writing 'cs4/pmute1.xpm'...
Writing 'cs4/fx_menu.xpm'...
Writing 'cs4/fx_echo.xpm'...
Writing 'cs4/fx_humanizer.xpm'...
Writing 'cs4/fx_limiter.xpm'...
Writing 'cs4/fx_lfo.xpm'...
Writing 'cs4/fx_loop.xpm'...
Writing 'cs4/fx_scale.xpm'...
Writing 'cs4/eth1.xpm'...
Writing 'cs4/cv1.xpm'...


system("convert ${output_file}.xpm ${output_file}.gif" )  
c'est un appel a un programme externe, convert. Si il est pas sur la bécane, le programme va pas aller plus loin  (c'est le cas sur mon PC).
Sinon, ça convertit tous les xpm en gif, et ça efface les gifs.
Les gifs obtenus, ça doit être des images utilisées par un programme, et ton script perl les génère toutes d'un coup (ce pourquoi il prend pas de paramètres)
system("rm ${output_file}.xpm" );
montre que le programme est écrit pour un environnement unix/linux vu que rm existe pas sous windows (et mac?).
Le code est de toute façon pas fini, car  if( $convert_gif ) dépend d'un flag $convert_gif qui est pas positionné par le programme et qui a une valeur au hasard (donc pas zéro).
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2033420
gilou
Modérateur
Modzilla
Posté le 01-11-2010 à 11:56:43  profilanswer
 

Un des trucs répétitifs de ce code, c'est

Code :
  1. init_mb_screen(0);
  2. print_string(0, 0, "texte a ecrire en ligne 1" );
  3. print_string(0, 1, " texte a ecrire en ligne 2" );
  4. write_screen("nom du fichier" );


ca va écrire un fichier XPM contenant les textes donnés.
Donc c'est print_string qui fait le boulot d'écrire ça comme du LCD.
On voit que cette routine écrit lettre a lettre en découpant chaque lettre en 8 segments horizontaux empilés verticalement, et que chaque segment horizontal est constitué de 8 points (défini pour chaque lettre dans init_chars et init_mb_screen, si j'ai bien pigé [bon, j'ai pas été voir en détails])
A+,


Message édité par gilou le 01-11-2010 à 11:57:21

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2033474
houly75
Posté le 01-11-2010 à 18:18:50  profilanswer
 

Hello et un grand merci !
j'ai fini par généré les .xpm. J'ai fini par trouver commnet générer le .png => http://www.imagemagick.org/script/ [...] php#macosx
j'ai tout mis dans le répertoire cible et ça a fonctionné !
Pour le flag, $convert_gif est semble t-il défini au tout début du programme... je l'ai positionné à 1 pour qu'il passe sur la routine de conversion.
 
Merci encore pour votre aide,
reste plus qu'à digérer tout ça pour faire mes propres screenshots et caractères spéciaux (je ne sais pas encore comment il a défini les caractères).


Message édité par houly75 le 01-11-2010 à 18:51:43
n°2033477
houly75
Posté le 01-11-2010 à 18:54:58  profilanswer
 

Autre chose, savez-vous s'il existe un debugger pour exécuter pas à pas un script Perl ? ça m'aiderait à mieux débuter...

n°2033480
gilou
Modérateur
Modzilla
Posté le 01-11-2010 à 19:07:38  profilanswer
 

Il faut lancer le script sous perl avec l'option -d  (debugger), pour le reste, voir la doc perl.
A+,


Message édité par gilou le 01-11-2010 à 19:08:27

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

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

  Aide sur l'execution d'un code en perl

 

Sujets relatifs
exercice algo "code barre"Besoin d'aide pour établir un devis
code source en CppProblème exécution d'une servlet
code en c qui lis un fileassocier cellule à un code
documenter du code python 3 avec Sphinx ?Compilation d'un fichier d'aide HTML (chm)
Problème POO et execution de fonctionAide script php + mysql
Plus de sujets relatifs à : Aide sur l'execution d'un code en perl


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