Documentation |   
Travailler avec des programmes externes
Arachnophilia est © Copyright 2015, P. Lutus.

Arachnophilia est CareWare

Pour comprendre cette page, les lecteurs doivent être familiers avec L'architecture des macros d'Arachnophilia — les fonctionnalités qui seront décrites supposent une certaine familiarité avec le système de macros.

Entrée-Sortie à usage général

Ces fonctionnalités ont été introduites dans Arachnophilia version 5.5.

Les fonctions décrites dans cette section peuvent être utilisées pour interagir avec votre système d'exploitation et tous les programmes qui s'exécutent sous celui-ci. L'une des fonctions lit la sortie d'un programme, tandis que l'autre transmet le document ou la sélection Arachnophilia actuelle à un programme pour traitement.

  • SystemCom

    SystemCom exécute une commande/un programme système et insère le résultat dans le document actuel. Dans l'éditeur de macros Arachnophilia, un exemple pourrait ressembler à ceci :

    Exemple Linux : [SystemCom:date]
    Exemple Windows : [SystemCom:date /T]
    

    Cet exemple interroge le système d'exploitation pour connaître la date et l'heure actuelles sous Linux (uniquement la date sous Windows) et les insère dans le document actuel à l'emplacement du curseur d'édition.

    Il est important de souligner que n'importe quelle commande ou programme système, y compris les programmes ou scripts écrits par l'utilisateur, peut être utilisé avec cette commande. Voici un autre exemple :

    Exemple Linux : [SystemCom:ls -la (chemin)]
    Exemple Windows : [SystemCom:dir (chemin)]
    

    Dans cet exemple, une liste de répertoires est acquise pour un (chemin) donné et le résultat est inséré dans le document.

  • Processus système

    SystemProcess amène ce qui précède à un niveau supérieur : il lit le document/la sélection actuelle, le diffuse vers un programme externe pour le traitement et insère le résultat dans le document en position d'édition. Il s'agit d'une fonctionnalité très puissante, et l'explication est un peu plus complexe.

    Voici un exemple : nous utiliserons un court script Python qui convertit le texte diffusé en MAJUSCULES, juste pour montrer comment fonctionne la fonctionnalité. Voici la liste des scripts Python :

    #!/usr/bin/env python
    # -*- codage : utf-8 -*-
    
    importer sys
    
    pour ligne dans sys.stdin.readlines() :
     ligne = ligne.supérieur()
     sys.stdout.écrire(ligne)
     
    

    Le script ci-dessus peut servir de modèle pour tout traitement de texte similaire que le lecteur pourrait souhaiter effectuer, en utilisant toutes les règles de traitement de texte souhaitées (et tout autre langage de script préféré par le lecteur).

    Pour utiliser ce script (ou un autre similaire), il faudrait créer une macro Arachnophilia comme celle-ci (en utilisant ces instructions comme guide) :

    [Processus système : chemin/vers/script/nom.py]
    

    Ensuite, on peut créer un bouton de barre d'outils ou une entrée de menu pour activer cette macro de manière pratique. Lorsque cette macro est activée, Arachnophilia acquiert le document actuel ou le texte de sélection et le diffuse vers le script Python. Le script python traite le texte et le renvoie à Arachnophilia, où il est inséré dans le document.

    Rappelez-vous du système de macro Arachnophilia : si aucune sélection de document n'est effectuée, le texte entier du document est fourni à la macro et est entièrement remplacé par le résultat, mais si une sélection est effectuée, seule la sélection est modifiée par la macro.

La différence entre SystemCom et SystemProcess est que la première commande ne transmet pas le texte du document au programme externe, alors que la seconde le fait. Assurez-vous d'utiliser la bonne commande pour obtenir le résultat souhaité :

  • SystemCom ne perturbera pas le texte de votre document (sauf si une sélection a été effectuée), il insère simplement la sortie d'un programme au niveau du curseur d'édition.
  • SystemProcess prend l'intégralité du contenu ou de la sélection du document et le remplace par la sortie du programme externe.
  • Dans tous les cas, si vous obtenez un résultat indésirable, cliquez simplement sur le bouton  bouton Annuler de la barre d'outils pour récupérer.
Fonctions spécifiques au compilateur
Les fonctionnalités qui seront décrites ensuite sont le plus souvent utilisées avec des compilateurs, mais n'importe quel programme peut être activé par Arachnophilia et interagir avec lui.

Pour les activités liées au compilateur, l'activation du programme utilise l'une des deux macros système, en fonction des exigences :
  • Le premier est plus adapté aux compilateurs susceptibles de renvoyer des messages d'erreur. [SystemExec:arg] provoque le lancement d'un programme nommé avec des arguments supplémentaires facultatifs. Voici un texte de macro typique pour cette commande :

    [Enregistrer][SystemExec:g++ [NomFichier]]
    Dans cette macro, le fichier affiché est enregistré dans son emplacement de stockage déjà établi, puis un compilateur C++ populaire est lancé avec le nom du fichier comme argument (rappelez-vous que les macros Arachnophilia peuvent être imbriquées dans d'autres macros Arachnophilia). Si le compilateur produit des messages d'erreur, ils seront répertoriés au bas du panneau du document et le curseur d'édition du document sera automatiquement placé sur la première ligne d'erreur signalée. Comme ça:

    La macro ci-dessus serait utilisée pour la programmation interactive — après quelques modifications du fichier source, l'opérateur activerait simplement cette macro d'une simple pression sur une touche. Si des erreurs étaient signalées, elles pourraient être corrigées de manière interactive (il est possible de cliquer sur le « panneau de commentaires » affiché dans l'image ci-dessus pour passer à chaque erreur tour à tour) et la macro pourrait être réactivée.

  • Une autre commande -- [SystemConsole:arg] — est plus adaptée lorsqu'une interaction avec un programme est prévue et qu'une fenêtre de terminal est nécessaire. Voici des exemples de macros :

    Exemple Linux : [SystemConsole:bash -i]
    Exemple Windows [SystemConsole:cmd /k]
    
    Ces commandes lancent des interpréteurs shell sur les plates-formes respectives, à l'aide d'un simple terminal interactif, lancé dans une fenêtre séparée, pour gérer les E/S.

Il est regrettable que ces deux macros liées au compilateur aient des noms si similaires aux plus récentes décrites dans la première section, mais ces deux-là ont été écrites il y a des années et j'ai décidé de ne pas les renommer car cela pourrait casser les macros utilisateur existantes.

 

Documentation |