<<< DISK$DATA:[NOTES$LIBRARY]VAX_VMS.NOTE;1 >>> -< SIG VAX/VMS >- ================================================================================ Note 678.0 Comment recuperer les qualifiers 10 replies DECUSF::CLAR_D "Chairman du SIG UNIX" 4 lines 12-FEB-1990 10:47 -------------------------------------------------------------------------------- L'idee de .1 est bonne. Le probleme est qu'il faudrait egalement recuperer la ligne de commande en entier avec les differents qualifiers. Cela n'a pas l'air possible sous VMS ou me trompe-je? ================================================================================ Note 678.1 Comment recuperer les qualifiers 1 of 10 DECUSF::LESUEUR_E "Emmanuel le SUEUR - SOGIDEC" 21 lines 12-FEB-1990 11:18 -< Mais si, c'est possible !!! >- -------------------------------------------------------------------------------- C'est tout à fait possible en faisant quelque chose du genre : $ Print := print $ COMMAND = "Print " $ $ if P1 .nes. "" then COMMAND = COMMAND + "''P1'" + " " $ if P2 .nes. "" then COMMAND = COMMAND + "''P2'" + " " $ if P3 .nes. "" then COMMAND = COMMAND + "''P3'" + " " $ if P4 .nes. "" then COMMAND = COMMAND + "''P4'" + " " $ if P5 .nes. "" then COMMAND = COMMAND + "''P5'" + " " $ if P6 .nes. "" then COMMAND = COMMAND + "''P6'" + " " $ if P7 .nes. "" then COMMAND = COMMAND + "''P7'" + " " $ if P8 .nes. "" then COMMAND = COMMAND + "''P8'" $ $ 'COMMAND' Vous pouvez ainsi récupérer jusqu'à 8 paramètres ou qualifieurs se trouvant sur la ligne de command DCL et séparés par des espaces. ================================================================================ Note 678.2 Comment recuperer les qualifiers 2 of 10 DECUSF::CLAR_D "Chairman du SIG UNIX" 7 lines 12-FEB-1990 13:10 -< Qualifiers et non parametres! >- -------------------------------------------------------------------------------- Ce ne sont pas les qualifiers mais les parametres que vous decrivez. Ce que je souhaite, c'est pouvoir recuperer dans mon fichier de commandes le /notify ou le /que=truc$print ou le /copies=,etc... Pour les parametres, je n'ai absolument aucun probleme. Merci quand meme pour la reponse. ================================================================================ Note 678.3 Comment recuperer les qualifiers 3 of 10 DECUSF::SMANS_M "Michel Smans, C.I.R.C., Lyon" 3 lines 12-FEB-1990 13:55 -< commande foreign? >- -------------------------------------------------------------------------------- Pourquoi de pas definir une commande FOREIGN, LIB$GET_FOREIGN permettantallors de recuperer l'ensmeble de la ligne de commande. Helas, il faut se farcir la parsing derriere... ================================================================================ Note 678.4 Comment recuperer les qualifiers 4 of 10 DECUSF::TARRAGO_X "Xavier Tarrago CEA/Saclay" 14 lines 12-FEB-1990 14:31 -< simple mais utile >- -------------------------------------------------------------------------------- Nous utilisons pour cela le shema suivant: Tous les utilitaires pointent sur une procedure de parsing (ex: print:==@site$manager:parse print laser:==@site$manager:parse laser etc... ) Parse.com est un aiguillage qui analyse la commande. Cela permet des commandes du style $print/user=xxx toto.dat/delete pour laquelle parse.com voit param1: print qualifieur1:user=xxx param2:toto.dat qualifieur2:delete et declenche le traitement approprie d'apres param1. NB: cette astuce n'est pas de notre invention et est largement utilisee sur les machines de la Physique des Particules. ================================================================================ Note 678.5 Comment recuperer les qualifiers 5 of 10 DECUSF::OURGHANLIA_B 1 line 12-FEB-1990 14:59 -< Voir brico.... >- -------------------------------------------------------------------------------- Voir le brico VMS:PARMQUAL.*. ================================================================================ Note 678.6 Comment recuperer les qualifiers 6 of 10 DECUSF::PERROT_B "IPN Orsay" 2 lines 12-FEB-1990 18:44 -< brico(brico) >- -------------------------------------------------------------------------------- Voir aussi brico(brico) VMS:PARMQUAL2.FOR Le meme avec en plus la gestion de valeurs pour les qualifiers. ================================================================================ Note 678.7 Comment recuperer les qualifiers 7 of 10 DECUSF::LESUEUR_E "Emmanuel le SUEUR - SOGIDEC" 42 lines 12-FEB-1990 19:42 -< Pas d'accord !! >- -------------------------------------------------------------------------------- Réponse à .2 : Je ne suis pas d'accord, on récupère bien les qualifieurs !!! On récupère en fait, dans des paramètres DCL tout ce qui est passé sur la ligne de commande, séparé par des espaces, y compris les qualifieurs d'une commande DCL. Par exemple, si vous faite : $ print /queue=sys$batch/notify /param=("1", "2") /after=tomorrow vous allez recuperer les choses suivantes : P1 : /queue=sys$batch/notify P2 : /param=("1", P3 : "2" P4 : /after=tomorrow Et en concatenant le tout, vous retrouvez la commande de départ: $ print /queue=sys$batch/notify /param=("1", "2") /after=tomorrow. Les 2 seules contraintes sont : - de ne pas accoler le premier qualifieur à la commande (print/queue=sys$batch/notify), sans quoi cela ne marchera pas, - et de ne pas avoir plus de 8 items séparés par des espaces apres la commande print, puisque le nombre des symboles implicites de DCL est limité à 8. En tout cas ceci marche trés bien et je m'en suis servi en plusieurs occasions ... ================================================================================ Note 678.8 Comment recuperer les qualifiers 8 of 10 DECUSF::FAUCONNET_A "Alain,INSERM,Res.SIG Graphique" 17 lines 12-FEB-1990 23:03 -< Astuche >- -------------------------------------------------------------------------------- Une vieille astuce est de definir un symbole comme : $ foo :== @foo % Si on invoque "foo" par : $ foo/a b c ou : $ foo /a b c On recupere dans FOO.COM : P1 = "%" P2 = "/A" P3 = "B" P4 = "C" Il suffit d'ignorer superbement P1 et le tour est joue. ================================================================================ Note 678.9 Comment recuperer les qualifiers 9 of 10 DECUSF::CLAR_D "Chairman du SIG UNIX" 1 line 13-FEB-1990 07:51 -< Merchi a tous. >- -------------------------------------------------------------------------------- ================================================================================ Note 678.10 Comment recuperer les qualifiers 10 of 10 DECUSF::CLAR_D "Chairman du SIG UNIX" 3 lines 14-FEB-1990 17:12 -< Et la protection des symboles? >- -------------------------------------------------------------------------------- Question subsidiaire: qu'est ce qui empeche un utilisateur de redefinir le symbole? Comment empecher un symbole local d'ecraser un symbole global?