OVH Cloud OVH Cloud

[Applescript] Problème basique (je suppose)

7 réponses
Avatar
Luc
Bonjour,

Je d=E9sesp=E8re de r=E9ussir =E0 faire par Applescript un truc qui me se=
mble=20
pourtant tr=E8s simple (mais c'est vrai que je suis loin de ma=EEtriser A=
S).
Je voudrais pouvoir r=E9cup=E9rer dans une variable le nombre contenu dan=
s=20
un nom de fichier, par ex. :

bidule354.txt =3D> 354
machin123.pdf =3D> 132

D'apr=E8s ce que j'ai compris de la doc que j'ai pu trouver, il n'y a pas=
=20
de base de regexp en AS, quoique =E7a doit sans doute =EAtre d=E9mesur=E9=
pour=20
une tache aussi simple.
Si quelqun pouvait m'aider =E0 garder les rares cheveux qu'il me reste ;-=
)

7 réponses

Avatar
Patrick Stadelmann
In article <43863b9e$0$4366$,
Luc wrote:

Je désespère de réussir à faire par Applescript un truc qui me semble
pourtant très simple (mais c'est vrai que je suis loin de maîtriser AS).
Je voudrais pouvoir récupérer dans une variable le nombre contenu dans
un nom de fichier, par ex. :

bidule354.txt => 354
machin123.pdf => 132

D'après ce que j'ai compris de la doc que j'ai pu trouver, il n'y a pas
de base de regexp en AS, quoique ça doit sans doute être démesuré pour
une tache aussi simple.
Si quelqun pouvait m'aider à garder les rares cheveux qu'il me reste ;-)


set s to "machin123.pdf"
set n1 to (characters of s)
set n2 to {}
repeat with i in n1
set c to ""
try
set c to i as number
end try
if c "" then
set n2 to n2 & i
end if
end repeat
set res to n2 as text as number

Patrick
--
Patrick Stadelmann

Avatar
Luc
Patrick Stadelmann wrote:


set s to "machin123.pdf"
set n1 to (characters of s)
set n2 to {}
repeat with i in n1
set c to ""
try
set c to i as number
end try
if c "" then
set n2 to n2 & i
end if
end repeat
set res to n2 as text as number



Merci, ça marche nickel (il y a juste le "different" qui a sauté au
passage dans la ligne 'if c "" then').
C'est le gnere de truc que j'essayais de faire mais en y mettant des
trucs du style :
if class of truc is integer
qui ne fonctionnaient pas du tout.

Avatar
gerald.coyot
Luc wrote:

Je désespère de réussir à faire par Applescript un truc qui me semble
pourtant très simple (mais c'est vrai que je suis loin de maîtriser AS).
Je voudrais pouvoir récupérer dans une variable le nombre contenu dans
un nom de fichier, par ex. :

bidule354.txt => 354
machin123.pdf => 132


Ca c'est plus dur.
--
Amitiés, Gérard Cojot
'Bienheureux les fêlés, ils laisseront passer ma lumière'[M.Audiard]
http://perso.wanadoo.fr/gerard.cojot/

Avatar
pere.noel
Gérard Cojot wrote:

bidule354.txt => 354
machin123.pdf => 132


Ca c'est plus dur.


son même pas prévu un "Integer.valueOf()" ?
--
une bévue


Avatar
Alexis
Luc wrote:
Bonjour,

Je désespère de réussir à faire par Applescript un truc qui me semble
pourtant très simple (mais c'est vrai que je suis loin de maîtriser AS).
Je voudrais pouvoir récupérer dans une variable le nombre contenu dans
un nom de fichier, par ex. :

bidule354.txt => 354
machin123.pdf => 132

D'après ce que j'ai compris de la doc que j'ai pu trouver, il n'y a pas
de base de regexp en AS, quoique ça doit sans doute être démesuré pour
une tache aussi simple.


pour info, la Satimage.osax est un complément de pilotage AppleScript
qui implémente regexp :
<http://www.satimage.fr/software/fr/downloads_osaxen_pop.html>

solution simpliste (pas très résistante) utilisant cette osax :
set x to find text "[0-9]+" in "bidule354.txt" with regexp and string result
-- "354"

Alexis

Avatar
pere.noel
Lionel Mychkine wrote:

Parce que c'est trop facile à programmer soi-même ;-)


pour je ne sais plus quel petit script AS, je me suis fait une chtit'
class java de manière à éviter de réinventer le monde...

j'appelle cette class par un do shell script ;-)
--
une bévue

Avatar
pere.noel
Alexis wrote:

our info, la Satimage.osax est un complément de pilotage AppleScript
qui implémente regexp :
<http://www.satimage.fr/software/fr/downloads_osaxen_pop.html>

solution simpliste (pas très résistante) utilisant cette osax :
set x to find text "[0-9]+" in "bidule354.txt" with regexp and string result
-- "354"


super, merci beaucoup !
--
une bévue