L4G >  System  

Afficher tout Masquer tout

System permet l'exécution d'ordres système en récupérant éventuellement la sortie standard dans une variable Adonix.

 

Syntaxe

   System [ variable '=' ] [ ! | !! ] [ [ serveur ] @ ] expr_c

 

Paramètres

Elément

Description

Restrictions

variable

nom_de_variable.

Aucune.

serveur

Expression alphanumérique dont le résultat est le nom d'un serveur

Aucune

expr_c

Expression alphanumérique dont le résultat est un ordre système.

Aucune.

 

Exemples

   # Copie FICHIER1 -> FICHIER2 avec redirection de la sortie d'erreur
   # (sous Unix)
    System "cp "+FICHIER1+" "+FICHIER2-"2>/dev/null"

   # Liste de répertoire sur le serveur où se trouve la première
   # application de référence (sous DOS).
    Char FICHIERS(100)(50)
    Char REPERTOIRE(100)
    REPERTOIRE = "D:\adonix\tmp"
   
System FICHIERS = adxmac(1)+"@DIR/b/o:n"+REPERTOIRE
    Infbox num$(stat1)-"lignes lues"

   # Ouvrir un document word depuis un traitement Adonix
    Char FICHIERS(100)(50)
   
System FICHIERS = '#@"C:\Program Files\Microsoft Office\Office\WINWORD.EXE"    
                       "E:\tmp\document.doc"'

Description

"System expr_c" exécute l'ordre système donné dans l'expression. On peut précisier la machine sur laquelle il doit être exécuté.

  • si le nom d'un serveur est précisé et suivi du caractère '@' alors Adonix essaie de s'y connecter afin d'y exécuter l'ordre système. Un "démon" adxd doit donc tourner sur cette machine ;
  • si  les caractères '#@' sont précisés en début de chaine, Adonix exécutera l'ordre sur la machine locale.
  • si le nom du serveur n'est pas précisé mais que le caractère '@' est en début de chaine, l'ordre système sera exécuté sur le serveur où est implémentée l'application ;
  • s'il n'y a pas de caractère '@', alors la commande sera exécutée sur la machine 'moteur'.

Si l'on utilise les deux caractères "!!" devant l'ordre système, les opérations suivantes sont réalisées :

1.   sauvegarde de l'écran,

2.   reparamétrage du terminal de sortie d'Adonix,

3.   envoi de la séquence de sortie d'Adonix,

4.   exécution de l'ordre système,

5.   envoi de la séquence de démarrage,

6.   reparamétrage du terminal de sortie d'Adonix,

7.   restauration de l'écran.

S'il n'y a qu'un "!" devant l'ordre système, les opérations 1 et 7 seront supprimées.

S'il n'est pas nécessaire de reparamétrer la ligne, on ne mettra rien devant l'ordre système.

"System variable = expr_c" lance un ordre système et récupère la sortie standard de l'ordre dans la variable correspondante. S'il y a plusieurs lignes et que la variable correspondante est un tableau de chaînes de caractères, on retrouvera toutes les lignes correspondantes dans le tableau si celui-ci a été suffisamment dimensionné.

La variable système Adonix stat1 renvoie le nombre de lignes lues (syntaxe avec affectation). Dans le cas d'un client Unix exécutant une commande en mode local (ie @expr_c), stat1 contiendra le numéro de sortie (qui correspond souvent à un numéro d'erreur) de la commande.

 

Remarques

Lorsque l'ordre système est exécuté en mode interactif sur la machine locale ( donc s'il commence par les caractères '!!@'), la variable [S]stat1 contient le numéro d'erreur Unix de l'ordre système exécuté si celui-ci échoue.

 

Erreurs associées

Erreur

Description

ERMODE (10)

expr_c ou variable ne sont pas de type chaîne.

 

Mots-clés associés

STAT1ADXMAC - DIR$ - GETENV$ - FILPATH - FILINFO