Modifier

J'utilise la fonction Compile tous les jours. En effet, je me suis créé un petit exécutable qui me permet de saisir du code WLangage et je l'exécute en appuyant sur F5. Une trace m'affiche le résultat et les erreurs. C'est très pratique pour tester une fonction ou un code en quelques secondes.

Mais bien que je m'en serve souvent, je trouve la fonction Compile assez limitée. Une des particularités est qu'on ne peut définir qu'une seule fonction dedans et les procédures internes sont interdites.

Malgré ce que je dis, il est quand même possible de définir d'autres procédures, tout simplement en ré-utilisant la fonction compile.

Voici un exemple de code que vous devez compiler avec Compile.

PROCEDURE MaProcédure()
AfficherLeCarré est une procédure = Compile([
    PROCEDURE AfficherLeCarré(Valeur est un entier)
        Trace(Valeur * Valeur)
])
POUR i = 1 A 10
    AfficherLeCarré(i)
FIN

Si vous souhaitez réutiliser la fonction dans les autres procédures compilées dynamiquement, vous devez donner un nom à votre procédure. Mais attention, dans ce cas, votre fonction est déclarée de manière globale au niveau du projet. Faîtes attention à ne pas utiliser un nom de fonction déjà utilisé.

PROCEDURE MaProcédure()
AfficherLeCarré est une procédure = Compile("AfficherLeCarré", [
    PROCEDURE AfficherLeCarré(Valeur est un entier)
        Trace(Valeur * Valeur)
])

AfficherCarréDansInterval est une procédure = Compile("AfficherCarréDansInterval", [
    PROCEDURE AfficherCarréDansInterval(ValDébut est entier, ValFin est entier)

    POUR i = ValDébut A ValFin
        AfficherLeCarré(i)
    FIN
])
AfficherCarréDansInterval(5, 10)
AfficherCarréDansInterval(25, 30)

Collez ce code dans un fichier texte, et utilisez la fonction Compile dessus (avec un fChargeTexte) et exécutez la fonction ainsi créée.

Et voilà, avec cette astuce, vous pouvez utiliser des procédures dans vos procédures compilées dynamiquement.

Bonne soirée à tous !

Article précédent Article suivant