Réécrire du Basic en Perl

tisba972 Messages postés 370 Statut Membre -  
tisba972 Messages postés 370 Statut Membre -
Bonjour,
J'ai pour mission de reprendre un script en Basic de 1993 et de le transposer en Perl ...
Cela est-il largement envisageable ? Ou bien vais-je au devant de grosse galère?
Configuration: Linux
Firefox 1.5.0.5

4 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    affiche ton script pour voir
    -1
  2. tisba972 Messages postés 370 Statut Membre 44
     
    Le script est assez long...
    c'est plusieurs fichiers :
    un avec des fonctions que je retranscris assez facilement jusque là
    et un autre avec le programme principal ou je sèche beaucoup plus :
    je te mets une partie du code principal :

    CLS
    	GOSUB AnaLyseLigneCommande
    	'''NumeroBouee$ = "5832"
    	bavard1 = 0
    	lent = 0
    	'''archiv = UCASE$(LTRIM$(RTRIM$(COMMAND$))) = "ARC"
    	'''Nomfic$ = "PRV.TMP"
    	GOSUB Init
    	Nf$ = NumeroBouee$ + ".INF"
    	IF (NOT (ExisteFichier(Nf$))) THEN
    	     TypeAbort = 3
    	     GOSUB AbortProgramme
    	END IF
    	LireDonnees "WAV.DAT", Nf$, TI, LB, INfd, archiv '"WAV.DAT" modifi‚ !y2k
    	LireTableauAffic "RESULT", TR '"RESULT" modifi‚ !y2k
    	jolicadre Nbouee&, 2, 27
    	IF (archiv) THEN
    	     NomficDon$ = "archiv4.dat"
    	     Nomficarc$ = "W" + NumeroBouee$ + " .ARC"
    	     NomFicASCII$ = "W" + NumeroBouee$ + ".DON"
    	     ArchivesPRVArgos NomficDon$, Nomficarc$, NomFicASCII$, TR, INfd
    	     CLS
    	     jolicadre Nbouee&, 2, 27
    	     VoirFicArchives Nbouee&, TI, TR, INfd
    	     ListBoxresult LB, TR, "PRVARC.IMP", INfd, Nbouee&, archiv
    	  ELSE
    	    DecPRVWave Nomfic$, nexp, Nbouee&, TI, TR, INfd, 0
    	    ListBoxresult LB, TR, "PRVTMP.IMP", INfd, Nbouee&, archiv
    	END IF
    	COLOR 15, 0
    	CLS
         END
    


    merci encore
    -1
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Peut être qu'on peux penser autrement

    Tu me dit ce que fait ton script et je te ferai un code en Perl à ma façon ;-)
    Je pense que ça sera plus simple.

    Bref, tu me dis ce que tu as en entrée et ce que tu veux obtenir. Pour le traitement je m'en occuperai ;-)
    -1
  4. tisba972 Messages postés 370 Statut Membre 44
     
    te dire ce que fait le script c'est assez long...
    en fait le but est de decrypter des donnees ARGOS sur des bouees en mer
    pour cela on utilise une connexion Telnet :
    j'ai déja créé la partie telent en perl :

    use Net::Telnet() ;
    
    $olog = "o.log" ;
    $ilog = "i.log" ;
    
    $machine = "netdis.cls.fr" ;
    $user = "mandar" ;
    $pwd = "houlograf" ;
    $p1 = "/.*ername.*/" ;
    $p2 = "/.*sword.*/" ;
    $cmd = "prv,1450,ds,240" ;
    $prompt = '/^\/.*/' ;
    $prompt = '/\//' ;
    
    $tel = new Net::Telnet (Prompt => $prompt);
    $tel->output_log($olog) ;
    $tel->input_log($ilog) ;
    
    $tel->open(Host => $machine) ;
    $ok = $tel->waitfor($p1) ;
    $tel->print($user) ;
    $tel->waitfor($p2) ;
    $tel->print($pwd) ;
    
    $tel->waitfor("/ARGOS READY.*/") ;
    $tel->waitfor($prompt) ;
    @res = $tel->cmd($cmd) ;
    $tel->waitfor("/\/.*/") ;
    $tel->cmd("logout") ;
    
    print "Et attention...\n" ;
    foreach $lig (@res) {
           print $lig ;
          #et le traitement de mes données...........................
    
    }

    après il ya des fonction dont j'identifie facilement la structure...mais d'autre dont je ne vois pas du tout le but.
    je n'ai jamais utilisé le script en basic ...On me la refilé et demander de le transcrire sans meme que je ne le connaisse. donc je te dis ce que j'ai compris du script ...
    après la connexion telnet , on reçois plusieur fichiers qu'il faut décrypté...
    il ya des conversions a faire sur les jour ( Jour Julien) et recupéré les noms des bouees avec les donnees correspondantes.

    le script principal fait 2442 lignes ...
    je n'oserai pas t'encombrer avec ça ;)

    en tout cas merci pour ton implication
    -1