Page 1 sur 1

[Résolu] Parametres, -u et usersetting

Posté : lun. 5 sept. 2016, 08:03
par dmicollet
Bonjour,

Je débute dans l'utilisation d'asymptote.

Je cherche à paramétrer l'execution d'un fichier asymptote à la manière des $1, $2 du bash d'unix.

En fouillant dans les exemples, j'ai pensé à utiliser l'option -u et la procédure usersetting.
Lorsque je souhaite passer un paramètre numérique, je n'ai aucun problème.

Par contre, je ne parviens pas à passer un paramètre alphanumérique

ECM

Code : Tout sélectionner

string Option="Valeur par défaut";
usersetting();
write (Option);
Éxécution

Code : Tout sélectionner

$ asy ecm.asy
Valeur par défaut
$ asy -u Option="Parametre" ecm.asy
<eval>: 1.8: no matching variable 'Parametre'
La seconde exécution échoue.

La seule solution de contournement que j'ai trouvée consiste à écrire :

Code : Tout sélectionner

string Option_Predefinie="Parametre";
string Option="Valeur par défaut";
usersetting();
write (Option);
dont l'exécution est correcte :

Code : Tout sélectionner

$ asy -u Option=Option_Predefinie ecm.asy
Parametre
qui limite toutefois les valeurs d'Option à un ensemble prédéfini.

Est une limitation d'asymptote ou y-a-t-il une astuce ?

Note : je saurais aussi contourner ce problème en lisant la variable avec readline, mais je préfèrerais la méthode paramètres qui facilite l'écriture des scripts bash.

Cordialement

Dominique

Debian/Jessie/8.5
Asymptote 2.31 édité avec Geany 1.24.1
Latex pdfTeX 3.14159265-2.6-1.40.15 (TeX Live 2015/dev/Debian)

Re: Parametres, -u et usersetting

Posté : lun. 5 sept. 2016, 18:53
par GM
Bonsoir et bienvenue.
dmicollet a écrit :Je débute dans l'utilisation d'asymptote.
On pouvait alors s'attendre à une question plus classique et de réponse plus évidente. :)

J'ai trouvé cet ancien message de Bowman de 2009...
By: jcbowman

Method 1: Put in myscript.asy:

Code : Tout sélectionner

string filename;
usersetting();
write(filename);
Then type

Code : Tout sélectionner

asy -u filename=\"file1.dat\" myscript
... et j'ai donc pensé à :

Code : Tout sélectionner

string filename;
usersetting();
write(machaine);

Code : Tout sélectionner

asy -u machaine=\"une chaine quelconque\" myscript
[/quote]

Mais ce n'est pas concluant.

Re: Parametres, -u et usersetting

Posté : mar. 6 sept. 2016, 08:59
par dmicollet
Bonjour,

GM a écrit :Bonsoir et bienvenue.
dmicollet a écrit :Je débute dans l'utilisation d'asymptote.
On pouvait alors s'attendre à une question plus classique et de réponse plus évidente. :)
Je débute en asymptote, mais j'ai quelques décennies de bonnes pratiques de la programmation ;)
GM a écrit :
... et j'ai donc pensé à :

Code : Tout sélectionner

string filename;
usersetting();
write(machaine);

Code : Tout sélectionner

asy -u machaine=\"une chaine quelconque\" myscript

Mais ce n'est pas concluant.
Bonne piste, puisque avec mon premier ecm

Code : Tout sélectionner

$ asy -u Option='"Parametre Spécifique"' ecm.asy 
Parametre Spécifique
la réponse est correcte. On peut aussi écrire

Code : Tout sélectionner

$ asy -u Option=\"Parametre Spécifique\" ecm.asy 
Parametre Spécifique
C'était donc bien une question de débutant.

Note 1 : Votre proposition ne marche probablement pas parce que la variable machaine n'est pas déclarée (c'est filename qui l'est)(pas essayé).

Note 2 : comment indique t'on qu'une question est résolue, autrement qu'en éditant manuellement le sujet du premier article ?

Cordialement

Dominique

Re: Parametres, -u et usersetting

Posté : mer. 7 sept. 2016, 19:36
par GM
dmicollet a écrit :la réponse est correcte.
J'avais testé sous Windows en ne pensant pas qu'il pouvait y avoir une différence vis-à-vis de linux.
Mais, bizarre : cela ne fonctionne pas sous Windows 7 !
Cela lance "Welcome to Asymptote..."

Un peu débordé avec la rentrée scolaire, je reverrai le problème et trouverai l'explication plus tard.