Question AmigaDOS : variables
15 sujets de 1 à 15 (sur un total de 27)
- 1
- 2
-
Admin
Yop !!
Eventuellement en jouant avec
list lformat
Ou alors, je prendrait un peu de rexx… peut etre même que ça peut tenir en une ligne…
Par défaut le shell de l’amiga n’a pas de commande de manipulation de chaine de charactère, mais tu peux en trouver sur aminet : par exemple en utilisant InString et substring de http://aminet.net/package/util/cli/CLI_Progs
Mais pour obtenir la dernière partie de la chaine, il faudra peut etre faire une boucle… enfin moi je prendrais du rexx
Peut etre qq fans de grep pourrait te filer une ligne qui fonctionnerait
Je viens de regarder la doc.. il me semblait qu’il y avait un %qqchose qui récupérait le nom du repertoire parent, mais ça reste « Sauvegarde:thèmes/test » (sans compter qu’il faut que le répertoire soit non vide…)
Je peux te proposer une astuce de fou bien pourrave si tu le souhaites :
Tu créés un fichier « .zorglub » (ou ton nom préféré) dans ton répertoire sauvegarde:themes/test/ dans lequel tu stocke « test » (idem si tu as d’autres rep à traiter : « brouette » dans le .zorglub de sauvegarde:themes/brouette/ ), ensuite tu fais un
set var2 `type "$var.zorglub"`
Attention, il faut que
1. le repertoire existe
2. le .zorglub existe
3. ton $var aie le bon caractère final (à savoir : sauvegarde:themes/test/ ) pour concaténer correctement…
Bref, il faudrait sécuriser ça avec des IF….
bon, voila ma lamentable contribution… si j’avais le temps, je te donnerais une ligne en rexx à intégrer directement dans ton script, mais là, j’ai pas le temps dsl
Zorglub !
Hip !!
Un truc genre (tout sur la même ligne, hein !) :
set test `rx ‘say left(« $vartest », max(lastpos(« : », »$vartest »), lastpos(« / », »$vartest »,length(« $vartest »)-1)))’`
Si $vartest contient ta chaine… S’il n’y a pas de sous répertoire, cela retournera le volume.
[EDIT:] Cette ligne d’amigados appelant de l’arexx inline ne fait pas ce qui est demandé…
!! qiH
Oué ça ne se fait pas sous AmigaDOS.. à moins de le recoder toi-meme…
Bon, je peux te proposer un truc à mettre dans ton script : (désolé pour la mise en page)
en supposant que ta variable soit $var…
; La prochaine ligne utilise un script arexx inline (donc en une seule ligne) pour extraire l'info souhaitée
RX "ze_var='$var'; ze_var=LEFT(ze_var,LENGTH(ze_var)-1); ze_pos=MAX(LASTPOS(':',ze_var),LASTPOS('/',ze_var)); IF ze_pos>0 then; SAY SUBSTR(ze_var,ze_pos+1);Else; SAY ze_var"
En espérant que cela marche pour toi
Bon, y a qq limitation : il faut que le chemin spécifié dans $var soit toujours de la forme disque: ou disque:chemin/ (toujours avec un « : » ou un « / » à la fin)…
Pouaaa je touche pas l’arrexx c’est pas que je veux pas mais je suis graphiste je capte rien au code je touche tout juste à l’amigaDOS et rien d’autre
Je suis sur que c’est possible en dos mais je trouve pas
ya pas un truc genre « lastparent » ou un moyen de mettre en variable le dernie repertoire
J’ai modifié mon post pour simplifier encore l’expression.. tu n’as qu’à copier/coller… et modifier $var en ta valeur…
Pour récupérer dans var2 par exemple, tu fais juste un
SET var2 `RX "ze_var='$var'; ze_var=LEFT(ze_var,LENGTH(ze_var)-1); ze_pos=MAX(LASTPOS(':',ze_var),LASTPOS('/',ze_var)); IF ze_pos>0 then; SAY SUBSTR(ze_var,ze_pos+1);Else; SAY ze_var"`
Non, c’est pas possible en AmigaDOS, à moins d’utiliser des commandes non standard dispo éventuellement sur aminet, mais en feuillettant vite fait j’ai pas trouvé.. peut etre dans les shell unix…
Edit: qui plus est, ce que je te donne c’est du DOS : à insérer dans ton script amigaDOS tel quel…
Il faut toujours préciser sur quel système !!!
Sur OS4:
set deuxieme=`cut $mavariable char 19-`
Autrement dit, je découpe $mavariable depuis le 19ème caractère jusqu’à la fin, et je mets dans la « deuxieme » variable.
Tu pourrais aussi découper en prenant les « / » comme délimiteur avec:
set deuxieme=`cut $mavariable word 2- separator « / »`
ce qui permet de fonctionner quelque soit la taille du texte avant le premier /
ahah intéressant ça… en effet, je ne connais pas les nouvelles commandes d’os4…
15 sujets de 1 à 15 (sur un total de 27)
- 1
- 2
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Question AmigaDOS : variables