Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.sys.mac.programmation > #2496 > unrolled thread
| Started by | "M.V." <mv@gmail.com.invalid> |
|---|---|
| First post | 2023-03-02 09:29 +0000 |
| Last post | 2023-03-05 16:25 +0000 |
| Articles | 20 on this page of 49 — 6 participants |
Back to article view | Back to fr.comp.sys.mac.programmation
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-02 09:29 +0000
Re: Verifier la presence d'un mot dans tous les champs andre_favre@af.invalid (André Favre) - 2023-03-03 10:20 +0100
Re: Verifier la presence d'un mot dans tous les champs "Benoît L." <benoit@leraillez.com.invalid> - 2023-03-03 10:02 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.invalid> - 2023-03-03 14:48 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.invalid> - 2023-03-03 15:15 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-03 20:55 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-03 20:01 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-03 21:23 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-03 20:39 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-03 21:49 +0100
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-03 21:59 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-03 21:59 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-04 00:01 +0100
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-04 00:08 +0100
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-04 00:48 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-04 10:07 +0100
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-04 11:23 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-03 21:18 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-03 23:59 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 08:20 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 09:06 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 09:11 +0000
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-04 11:23 +0000
Re: Verifier la presence d'un mot dans tous les champs "Benoît L." <benoit@leraillez.com.invalid> - 2023-03-04 13:49 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 14:41 +0000
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-04 14:32 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 14:41 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 15:12 +0000
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-04 17:42 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 19:05 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-04 19:16 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-04 19:01 +0000
Re: Verifier la presence d'un mot dans tous les champs "Benoît L." <benoit@leraillez.com.invalid> - 2023-03-04 19:26 +0000
Re: Verifier la presence d'un mot dans tous les champs "Benoît L." <benoit@leraillez.com.invalid> - 2023-03-04 19:47 +0000
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-04 20:40 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-04 21:34 +0100
Re: Verifier la presence d'un mot dans tous les champs "Benoît L." <benoit@leraillez.com.invalid> - 2023-03-04 19:02 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-04 21:38 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-05 09:54 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-05 12:04 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-05 13:18 +0000
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-05 11:29 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-05 12:36 +0100
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-05 13:35 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-05 14:05 +0000
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-05 14:06 +0000
Re: Verifier la presence d'un mot dans tous les champs Joseph B <josephb@nowhere.invalid> - 2023-03-05 15:02 +0000
Re: Verifier la presence d'un mot dans tous les champs Olivier Miakinen <om+news@miakinen.net> - 2023-03-05 16:58 +0100
Re: Verifier la presence d'un mot dans tous les champs "M.V." <mv@gmail.com.invalid> - 2023-03-05 16:25 +0000
Page 1 of 3 [1] 2 3 Next page →
| From | "M.V." <mv@gmail.com.invalid> |
|---|---|
| Date | 2023-03-02 09:29 +0000 |
| Subject | Re: Verifier la presence d'un mot dans tous les champs |
| Message-ID | <ttpqam$7tm$1@shakotay.alphanet.ch> |
Dans le message <ttn9em$h0s$1@shakotay.alphanet.ch>, Benoît L. a écrit le 1er mars 2023 à 11 h 29 :
> _____________________________________________________________
> set TextToTest to "Pour parler à cœur ouvert, je mets une phrase vide,
> cœur à cœur, je mets du cœur à l'ouvrage, même si ce n'est pas de gaieté
> de cœur." as string
>
> set TextToSearch to "cœur"
> set AppleScript's text item delimiters to ","
> set TextAsList to text items of TextToTest
> repeat with i in TextAsList
> if i does not contain TextToSearch then
> display dialog "J’ai trouvé un « " & TextToSearch & " » qui manque
> dans « " & i & " »."
> exit repeat
> end if
> end repeat
> set AppleScript's text item delimiters to ""
> _____________________________________________________________
Good mais, à mon sens, il manque quelque chose : si la phrase est
« valide » (ie il y a le mot « cœur » dans chaque item), le script
s'arrête et l'utilisateur va se demander si le script a planté ou
autre chose.
Il faudrait au moins ajouter un avertissement signalant que la
phrase est « valide » :
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
set laPhrase to "Pour parler à cœur ouvert, cœur à cœur, je mets beaucoup de coeur, même si ce n'est pas de gaieté de cœur." as text
set text item delimiters to ","
set laPhrase to every text item of laPhrase
repeat with text_item in laPhrase
if "cœur" is not in text_item then
display alert "La phrase est invalide :" & return & "« cœur » est absent de « " & text_item & " »." giving up after 5
return
end if
end repeat
display alert "La phrase est valide." giving up after 4
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
Redirection vers fcsmp
--
🇺🇦 Michel Vauquois - <http://michelvauquois.fr> 🇺🇦
Quand un philosophe me répond, je ne comprends plus ma question. (Pierre
Desproges)
[toc] | [next] | [standalone]
| From | andre_favre@af.invalid (André Favre) |
|---|---|
| Date | 2023-03-03 10:20 +0100 |
| Message-ID | <1q70i1v.rxsh2abkvlatN%andre_favre@af.invalid> |
| In reply to | #2496 |
M.V. <mv@gmail.com.invalid> wrote: > Il faudrait au moins ajouter un avertissement signalant que la > phrase est « valide » Merci bien.
[toc] | [prev] | [next] | [standalone]
| From | "Benoît L." <benoit@leraillez.com.invalid> |
|---|---|
| Date | 2023-03-03 10:02 +0000 |
| Message-ID | <ttsgju$4c5$1@shakotay.alphanet.ch> |
| In reply to | #2497 |
Le 3 mars 2023 à 10:20, André Favre d'un élan de joie s'exprima ainsi : > M.V. <mv@gmail.com.invalid> wrote: > >> Il faudrait au moins ajouter un avertissement signalant que la >> phrase est « valide » > > Merci bien. Une idée comme ça : compter le nombre de phrase et le nombre de celles qui sont valides. À partir de là, on peut afficher in fine un dialogue qui dit qu’elles sont toutes valides ou qu’il y en a x sur les y qui ne le sont pas. Je dis ça parce qu’un dialogue qui apparaît à chaque test de phrase c’est vite _hiant. -- Une relation de moins d’1 mois, c'est pas une "ex", c'est un essai gratuit, comme Netflix. -+- SLD dans « L’amour : plus ça dure, plus ça coute » -+-
[toc] | [prev] | [next] | [standalone]
| From | "M.V." <mv@gmail.invalid> |
|---|---|
| Date | 2023-03-03 14:48 +0000 |
| Message-ID | <ttt1b6$lk6v$1@dont-email.me> |
| In reply to | #2496 |
Dans le message <ttpqam$7tm$1@shakotay.alphanet.ch>, j'ai écrit le 2 mars 2023 à 10 h 29 : > Il faudrait au moins ajouter un avertissement signalant que la > phrase est « valide » Pffftttt… Faudrait exactement savoir ce que signifie pour Olivier « le mot cœur est présent » car le script que j'ai indiqué considère que « De Montcuq à Moncœur » comme étant valide, ce qui est quand même plutôt contestable. -- 🇺🇦 Michel VAUQUOIS 🐸 <http://michelvauquois.fr> 🇺🇦 Et puis nos coutumes divergent, et divergent c'est énorme. (Pierre Desproges)
[toc] | [prev] | [next] | [standalone]
| From | "M.V." <mv@gmail.invalid> |
|---|---|
| Date | 2023-03-03 15:15 +0000 |
| Message-ID | <ttt2vc$lpku$1@dont-email.me> |
| In reply to | #2499 |
Dans le message <ttt1b6$lk6v$1@dont-email.me>, j'ai écrit le 3 mars 2023 à 15 h 48 :
> Faudrait exactement savoir ce que signifie pour Olivier « le mot cœur
> est présent » car le script que j'ai indiqué considère que « De Montcuq
> à Moncœur » comme étant valide, ce qui est quand même plutôt contestable.
Ceci devrait aller un peu mieux (j'ai accepté « Cœur » mais c'est facile
à régler si on n'en veut pas) :
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
set laPhrase to "Cœur ouvert, de Montcuq à Montcœur il n'y a qu'un pas, je mets beaucoup de cœur, même si ce n'est pas de gaieté de ccœur." as text
set invalid_count to 0
set invalid_list to {}
set text item delimiters to ","
set laPhrase to every text item of laPhrase
set C to count items of laPhrase
repeat with k from 1 to C
set item_list to every word of (item k of laPhrase)
if "cœur" is not in item_list then
set invalid_count to (invalid_count + 1)
set invalid_list to invalid_list & (item k of laPhrase)
end if
end repeat
if invalid_count = 0 then
display alert "La phrase est valide : le mot « cœur » est présent dans chacun des " & C & " items."
else
if invalid_count = 1 then
display alert "Sur " & C & " items, il y en a un seul ne contenant pas le mot « cœur » " & return & "C'est : " & return & tab & "• " & (invalid_list as text)
else
set text item delimiters to return & tab & "• "
display alert "Sur " & C & " items, il y en a " & invalid_count & " ne contenant pas le mot « cœur » " & return & "Ce sont : " & return & tab & "• " & (invalid_list as text)
end if
end if
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
--
🇺🇦 Michel VAUQUOIS 🐸 <http://michelvauquois.fr> 🇺🇦
Les deux tiers des enfants du monde meurent de faim, alors même que le
troisième tiers crève de son excès de cholestérol. (Pierre Desproges)
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-03 20:55 +0100 |
| Message-ID | <tttjb9$1ais$1@cabale.usenet-fr.net> |
| In reply to | #2499 |
Le 03/03/2023 à 15:48, M.V. a écrit : > > Faudrait exactement savoir ce que signifie pour Olivier « le mot cœur > est présent » car le script que j'ai indiqué considère que « De Montcuq > à Moncœur » comme étant valide, ce qui est quand même plutôt contestable. J'avais donné comme exemple la recherche de « cœur » sans préciser, mais en réalité mon idée était de remplacer cette chaîne fixe par une regexp quelconque. Par exemple, pour ne détecter que « cœur » et pas « Moncœur » ni « cœurs », il me suffisait dans la regexp complète de remplacer /cœur/ par /\bcœur\b/. -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | "M.V." <mv@gmail.com.invalid> |
|---|---|
| Date | 2023-03-03 20:01 +0000 |
| Message-ID | <tttjmb$5hk$1@shakotay.alphanet.ch> |
| In reply to | #2501 |
Dans le message <tttjb9$1ais$1@cabale.usenet-fr.net>, Olivier Miakinen a écrit le 3 mars 2023 à 20 h 55 : > J'avais donné comme exemple la recherche de « cœur » sans préciser, > mais en réalité mon idée était de remplacer cette chaîne fixe par > une regexp quelconque. Ça correspond à ce que j'imaginais et donc le script AS précédent ne fonctionnait pas ! Celui que j'ai pondu dans <news:ttt2vc$lpku$1@dont-email.me> irait beaucoup mieux. Et ta recherche fait le distingo entre « cœur » et « Cœur » ? -- 🇺🇦 Michel Vauquois - <http://michelvauquois.fr> 🇺🇦 L’erreur judiciaire est le plus sûr allié de la justice d’exception. Combien d’innocents courraient encore, s’il n’y avait pas d’erreurs judiciaires ? (Pierre Desproges)
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-03 21:23 +0100 |
| Message-ID | <tttl0q$1asu$1@cabale.usenet-fr.net> |
| In reply to | #2502 |
Le 03/03/2023 à 21:01, M.V. a écrit :
>
>> J'avais donné comme exemple la recherche de « cœur » sans préciser,
>> mais en réalité mon idée était de remplacer cette chaîne fixe par
>> une regexp quelconque.
>
> Ça correspond à ce que j'imaginais et donc le script AS précédent ne
> fonctionnait pas ! Celui que j'ai pondu dans
> <news:ttt2vc$lpku$1@dont-email.me> irait beaucoup mieux.
Je ne sais pas si la construction que tu utilises, à savoir « if "cœur"
is not in item_list », utilise une comparaison de chaîne fixe ou bien
une regexp.
Dans le second cas, alors peut-être que ton script fait aussi bien
que la regexp /(^|,)((?!cœur).)*(,|$)/ ; dans le premier cas, non.
Par exemple, je pourrais remplacer « cœur » par « [a-z]{7}(xx|yyy) »
ou n'importe quelle autre regexp.
> Et ta recherche fait le distingo entre « cœur » et « Cœur » ?
Pour une recherche indépendante de la casse il me suffit d'ajouter
un i après le dernier /, donc : /(^|,)((?!cœur).)*(,|$)/i
Il y a aussi moyen de faire en sorte qu'une partie de la regexp soit
indépendante de la casse et qu'une autre partie ne le soit pas. Mais
ça, ce serait plus en charte sur fcl.regexp qu'ici.
--
Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | "M.V." <mv@gmail.com.invalid> |
|---|---|
| Date | 2023-03-03 20:39 +0000 |
| Message-ID | <tttltt$elj$1@shakotay.alphanet.ch> |
| In reply to | #2503 |
Dans le message <tttl0q$1asu$1@cabale.usenet-fr.net>, Olivier Miakinen a écrit le 3 mars 2023 à 21 h 23 : > Je ne sais pas si la construction que tu utilises, à savoir « if "cœur" > is not in item_list », utilise une comparaison de chaîne fixe ou bien > une regexp. La séquence de mon script peut se traduire par : « si "cœur" n'est pas un des mots de l'item sélectionné alors… » Par exemple : - "cœur" est-il un des mots de « je mets beaucoup de cœur dans ce travail » : la réponse du script est OUI - "cœur" est-il un des mots de « même si ce n'est pas de gaieté de ccœur. » : le script répond NON > Dans le second cas, alors peut-être que ton script fait aussi bien > que la regexp /(^|,)((?!cœur).)*(,|$)/ ; dans le premier cas, non. Je ne sais pas… je ne comprends rien à regexp : un truc qui manque énormément à mon petit bagage ! -- 🇺🇦 Michel Vauquois - <http://michelvauquois.fr> 🇺🇦 La caractéristique vestimentaire du con consiste en un besoin irrésistible de s'habiller comme tout le monde. (Pierre Desproges)
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-03 21:49 +0100 |
| Message-ID | <tttmh9$1caj$1@cabale.usenet-fr.net> |
| In reply to | #2504 |
Le 03/03/2023 à 21:39, M.V. a écrit : > > Je ne sais pas… je ne comprends rien à regexp : un truc qui manque > énormément à mon petit bagage ! Eh bien par exemple la regexp "[a-z] [0-9]" permet de détecter une chaîne contenant une lettre minuscule sans accent, n'importe laquelle, suivie d'une espace, suivie d'un chiffre, n'importe lequel. Ainsi cela répondra oui à "toto 55" parce qu'il y a "o 5" dedans, mais non à "55 toto". -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-03 21:59 +0100 |
| Message-ID | <tttn40$1ci2$1@cabale.usenet-fr.net> |
| In reply to | #2505 |
Le 03/03/2023 à 21:49, je répondais à M.V. : >> >> Je ne sais pas… je ne comprends rien à regexp : un truc qui manque >> énormément à mon petit bagage ! > > Eh bien par exemple la regexp "[a-z] [0-9]" permet de détecter une > chaîne contenant une lettre minuscule sans accent, n'importe laquelle, > suivie d'une espace, suivie d'un chiffre, n'importe lequel. > > Ainsi cela répondra oui à "toto 55" parce qu'il y a "o 5" dedans, > mais non à "55 toto". Après une recherche rapide sur la toile, j'ai l'impression que c'était mort dès le départ pour faire ce que je voulais en Applescript : <https://discussions.apple.com/thread/5740773?answerId=24357283022#24357283022> § AppleScript does not support regular expressions in text comparisons - at least not without third-party support [...] § -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | "M.V." <mv@gmail.com.invalid> |
|---|---|
| Date | 2023-03-03 21:59 +0000 |
| Message-ID | <tttqk8$40b$1@shakotay.alphanet.ch> |
| In reply to | #2506 |
Dans le message <tttn40$1ci2$1@cabale.usenet-fr.net>, Olivier Miakinen a écrit le 3 mars 2023 à 21 h 59 : > Après une recherche rapide sur la toile, j'ai l'impression que c'était > mort dès le départ pour faire ce que je voulais en Applescript Tu voulais vraiment quelque chose en AS alors que tu n'es pas sur Mac ? Tu voulais faire quoi exactement ? -- 🇺🇦 Michel Vauquois - <http://michelvauquois.fr> 🇺🇦 Je suis un gaucher contrariant. C'est plus fort que moi. Il faut que j'emmerde les droitiers. (Pierre Desproges)
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-04 00:01 +0100 |
| Message-ID | <tttu8a$1dv4$2@cabale.usenet-fr.net> |
| In reply to | #2508 |
Le 03/03/2023 à 22:59, M.V. a écrit : > >> Après une recherche rapide sur la toile, j'ai l'impression que c'était >> mort dès le départ pour faire ce que je voulais en Applescript > > Tu voulais vraiment quelque chose en AS alors que tu n'es pas sur Mac ? Non, pas du tout. Je voulais une regexp. C'est Benoît L. qui a dit qu'il pouvait le faire en AS, et André Favre qui a demandé sa solution. > Tu voulais faire quoi exactement ? Ça : /(^|,)((?!cœur).)*(,|$)/ -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-04 00:08 +0100 |
| Message-ID | <tttum3$1e38$1@cabale.usenet-fr.net> |
| In reply to | #2510 |
Le 04/03/2023 à 00:01, j'ai répondu un peu vite à M.V. avant de comprendre vraiment quelle était sa question : >> >>> Après une recherche rapide sur la toile, j'ai l'impression que c'était >>> mort dès le départ pour faire ce que je voulais en Applescript >> >> Tu voulais vraiment quelque chose en AS alors que tu n'es pas sur Mac ? Alors non, mais c'est vrai que ma phrase pouvait prêter à confusion. J'aurais dû la formuler de la façon suivante : « Après une recherche rapide sur la toile, j'ai l'impression que c'était mort dès le départ, si on avait voulu faire en AppleScript ce que je voulais faire avec une regexp ». Désolé pour le quiproquo. -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | Joseph B <josephb@nowhere.invalid> |
|---|---|
| Date | 2023-03-04 00:48 +0000 |
| Message-ID | <ttu4gu$o0i$1@shakotay.alphanet.ch> |
| In reply to | #2511 |
Olivier Miakinen, le 4 mars 2023 à 00:08 dans
<news:tttum3$1e38$1@cabale.usenet-fr.net> écrivait :
> J'aurais dû la formuler de la façon suivante :
> « Après une recherche rapide sur la toile, j'ai l'impression que c'était
> mort dès le départ, si on avait voulu faire en AppleScript ce que je
> voulais faire avec une regexp ».
Absolument. Applescript est pensé pour manipuler les listes, voire les
matrices, mais très limité au niveau de la manipulation des chaines de
texte, dont tu as dû te rendre compte que pour ce faire on en vient à
traiter des listes d'items.
Applescript ne sait pas manipuler les regex, sauf à écrire la règle dans
une commande shell qui sera exécutée par l'appel «do shell script
"blablabla"»
Quant aux manipulations de nombres dans l'exemple que tu donnes, ça
pourrait être un peu mieux, Applescript supportant la "coercition" d'une
chaine de caractères numériques en réel ou en entier.
Malheureusement, là où ça se complique c'est que le langage va regarder
dans les préférences de langage du Système quel est le séparateur
décimal en vigueur.
Si mon Mac est configuré anglais ou allemand, par exemple, la
proposition
«class of ("+1.5" as number) = real» va répondre true
mais sur un Mac réglé francophone va générer l'erreur -1700
“error "Impossible de convertir \"+1.5\" en type number."
Pour un script à exécuter sur un Mac "français" la bonne syntaxe serait
«class of ("+1,5" as number) = real» ––> true
Histoire de ne pas simplifier les choses au décours d'un script, même en
Système "français", tous les /nombres réels/ sont présentés avec le
point comme séparateur décimal (sauf réglage spécial de l'utilisateur)
Je donne l'exemple ubuesque suivant mais bien réel
set z to "+1,5" # si je mets "1.5" la ligne suivante génèrera une erreur
get (z as number) + 2.3 # si je mets 2,3 j'aurai un refus de compilation
result : 3.8
get (("+1,5" as number) + 2.3) as string
result "3,8"
Pour un francophone écrire un applescript "universel" comportant des
valeurs numériques entrées en variable texte, oblige à des contorsions
indignes d'un langage de programmation qui se veut portable sur toutes
les options de langue possibles de l'OS.
Après ça, ne pas s'étonner qu'Applescript, malgré de très bonne choses
dont la programmation orientée objet, soit quelque peu méprisé par les
habitués des langages historiques, du Pascal au C, ou même Python, etc.
--
J.B.
Encoder l'anti-écho à court rayon d'action est illogique, puisque le filtre à
grand rayon d'action va neutraliser le spouniseur gravifique.
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-04 10:07 +0100 |
| Message-ID | <ttv1p1$1r02$1@cabale.usenet-fr.net> |
| In reply to | #2512 |
Le 04/03/2023 à 01:48, Joseph B a écrit (à propos de Mac en français) : > > Je donne l'exemple ubuesque suivant mais bien réel > > set z to "+1,5" # si je mets "1.5" la ligne suivante génèrera une erreur > get (z as number) + 2.3 # si je mets 2,3 j'aurai un refus de compilation Oh ! > [...] > Après ça, ne pas s'étonner qu'Applescript, malgré de très bonne choses > dont la programmation orientée objet, soit quelque peu méprisé par les > habitués des langages historiques, du Pascal au C, ou même Python, etc. En effet. Merci de ta réponse. Merci aussi à M.V., je ne fais pas une réponse séparée mais j'ai bien lu ton dernier article. -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | Joseph B <josephb@nowhere.invalid> |
|---|---|
| Date | 2023-03-04 11:23 +0000 |
| Message-ID | <ttv9nu$fu$1@shakotay.alphanet.ch> |
| In reply to | #2515 |
Olivier Miakinen, le 4 mars 2023 à 10:07 dans <news:ttv1p1$1r02$1@cabale.usenet-fr.net> écrivait : > En effet. Merci de ta réponse. Pour pimenter le propos, une petite démo en réponse à M.V. ;-) -- J.B. CS: Oui mais alors moi je me construis une souris avec autant de boutons : qu'applis et je fais des racourcis, rena ! :-) LP: Ah oui, mais alors là il va falloir acheter des doigts, rerena! ;-p -+- LP in Guide du Macounet Pervers : Vous m'en mettrez une poignée -+-
[toc] | [prev] | [next] | [standalone]
| From | "M.V." <mv@gmail.com.invalid> |
|---|---|
| Date | 2023-03-03 21:18 +0000 |
| Message-ID | <ttto6k$p6b$1@shakotay.alphanet.ch> |
| In reply to | #2505 |
Dans le message <tttmh9$1caj$1@cabale.usenet-fr.net>, Olivier Miakinen a écrit le 3 mars 2023 à 21 h 49 : > Eh bien par exemple la regexp "[a-z] [0-9]" permet de détecter une > chaîne contenant une lettre minuscule sans accent, n'importe laquelle, > suivie d'une espace, suivie d'un chiffre, n'importe lequel. > > Ainsi cela répondra oui à "toto 55" parce qu'il y a "o 5" dedans, > mais non à "55 toto". OK, je vois. C'est un tout petit moins simple en AppleScript mais ça se fait quand même très bien : prendre le 1er caractère de l'expression à tester, regarder s'il est dans [a-z], si oui regarder s'il est suivi d'une espace et si oui encore regarder si celle-ci est suivie par un chiffre entre 0 et 9. Si la réponse est NON à un des 3 critères alors passer au 2ème caractère de l'expression à tester, regarder s'il est dans [a-z], si oui regarder etc. Ça semble long quand on l'explicite mais un script fait ça en quelques millièmes de seconde pour une expression moins longue qu'un roman avec la chaine valide à la page 859 ! -- 🇺🇦 Michel Vauquois - <http://michelvauquois.fr> 🇺🇦 Existe-t-il au monde un privilège plus totalement exorbitant que la beauté ? (Pierre Desproges)
[toc] | [prev] | [next] | [standalone]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2023-03-03 23:59 +0100 |
| Message-ID | <tttu3m$1dv4$1@cabale.usenet-fr.net> |
| In reply to | #2507 |
Le 03/03/2023 à 22:18, M.V. a écrit : > >> Eh bien par exemple la regexp "[a-z] [0-9]" permet de détecter une >> chaîne contenant une lettre minuscule sans accent, n'importe laquelle, >> suivie d'une espace, suivie d'un chiffre, n'importe lequel. >> >> Ainsi cela répondra oui à "toto 55" parce qu'il y a "o 5" dedans, >> mais non à "55 toto". > > OK, je vois. Oui, mais c'était un exemple tout simple. > C'est un tout petit moins simple en AppleScript mais ça se fait quand > même très bien : prendre le 1er caractère de l'expression à tester, > regarder s'il est dans [a-z], si oui regarder s'il est suivi d'une > espace et si oui encore regarder si celle-ci est suivie par un chiffre > entre 0 et 9. > Si la réponse est NON à un des 3 critères alors passer au 2ème caractère > de l'expression à tester, regarder s'il est dans [a-z], si oui regarder > etc. > > Ça semble long quand on l'explicite mais un script fait ça en quelques > millièmes de seconde pour une expression moins longue qu'un roman avec > la chaine valide à la page 859 ! Alors prenons un autre exemple. Comment écrirais-tu un programme capable de détecter si une chaîne de caractères est un nombre en virgule flottante ? Voici quelques exemples de nombres valides : "0" "+1.5" "1e+99" "-19E-7" "1.7e003" ".3" Et voici quelques exemples non valides : "" "1.2.3" "1E3.4" "--1" "e+99" "." "+1e" Avec les regexp, le programme est par exemple : /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/ -- Olivier Miakinen
[toc] | [prev] | [next] | [standalone]
| From | "M.V." <mv@gmail.com.invalid> |
|---|---|
| Date | 2023-03-04 08:20 +0000 |
| Message-ID | <ttuuvu$hhg$1@shakotay.alphanet.ch> |
| In reply to | #2509 |
Dans le message <tttu3m$1dv4$1@cabale.usenet-fr.net>, Olivier Miakinen a écrit le 3 mars 2023 à 23 h 59 : > Comment écrirais-tu un programme capable de détecter si une chaîne de > caractères est un nombre en virgule flottante ? Je ne sais pas le faire et, comme expliqué par Joseph-B qui maîtrise tout ça beaucoup mieux que moi, AppleScript et les nombres, ça ne fait pas toujours bon ménage : est-ce que faire ce que tu demandes est possible ? J'ai un doute ! ;-) -- 🇺🇦 Michel Vauquois - <http://michelvauquois.fr> 🇺🇦 Vivre la ville en août, vivre la mer en juin, c'est l'ultime aristocratie et la rare élégance de l'estivant hexagonal. (Pierre Desproges)
[toc] | [prev] | [next] | [standalone]
Page 1 of 3 [1] 2 3 Next page →
Back to top | Article view | fr.comp.sys.mac.programmation
csiph-web