Re: Verifier la presence d'un mot dans tous les champs

Liste des GroupesRevenir à fcsm programmation 
Sujet : Re: Verifier la presence d'un mot dans tous les champs
De : josephb (at) *nospam* nowhere.invalid (Joseph B)
Groupes : fr.comp.sys.mac.programmation
Date : 04. Mar 2023, 13:23:43
Autres entêtes
Organisation : Bof…
Message-ID : <ttv9nv$fu$2@shakotay.alphanet.ch>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
User-Agent : MacCafe/2.10/peaberry (Mac OS X 10.13.6 (17G14042) - iMac12,1)
M.V., le 4 mars 2023 à 10:11 dans
<news:ttv1vi$ugge$1@dont-email.me> écrivait :

Si je remplace les points par des virgules, ça peut peut-être se faire

Oui, on peut arriver à quelque chose d'à peu près correct (selon la vision d'Olivier) moyennant une
astuce.

Supposons un applescript  qui utilise une fonction "shell" pour nous fournir une donnée numérique
décimale. Le résultat sera fourni à une variable applescript sous forme de chaine texte genre "123.55"
Au prochain calcul (chez un utilisateur dont le séparateur décimal par défaut est la ",") on aura
une erreur apparemment insurmontable sauf à faire un remplacement du point par la virgule dans la
variable obtenue par le script shell.
On peut le faire facilement avec la commande «tr»
exemple

set CalcVar to do shell script "echo 2.105 + 3.5 | bc" # fonction brute
set finalResult to (calcVar as number) * 0.5

partout on aura finalResult = 2.8025 sauf sur Mac "franco-français" qui génèrera une erreur.
Erreur variable selon la version de MacOS :
versions anciennes (jusqu'à Lion inclus, il me semble) erreur en forme de refus à l'exécution de la
coercition
Versions récentes, pas d'erreur signalée lors de la coercition mais le nombre devient un entier
total par suppression du caractère "erroné" soit "5.605" ––> 5605
Ce qui à mon avis est encore pire comme choix de la part des devs d'Apple

En écrivant la première fonction comme ceci
set calcVar to do shell script "echo 2.105 + 3.5 | bc | tr '.' ','"
la ligne suivante (finalResult) passera bien en France, finalResult = 2.8025
 mais génèrera une erreur de coercition partout où le séparateur décimal est le "." :
"5,605" ––> 5605 et finalResult = 2802.5


l'astuce pour rendre l'applescript universel est la suivante

set decimalSeparator to character 2 of (1 / 2 as string)
#selon les réglages de pays récupérera "." ou ","
set calcVar to do shell script "echo 2.105 + 3.5 | bc | tr '.' '" & decimalSeparator & "'"
# tr "force" le remplacement au séparateur décimal valide du pays dans calcVar.
set finalResult to (calcVar as number) * 0.5    
# finalResult = 2.8025 dans tous les cas de clavier et pays.

Ne pas oublier de redémarrer le Mac après changement de pays et valeur du séparateur décimal si l'on
veut tester l'absurdité du choix de développeurs d'Applescript.
Moi arrêté à High Sierra, rien ne me dit que dans des versions plus récentes Apple n'aurait
peut-être corrigé ce bug conceptuel.


--
 J.B.



Date Sujet#  Auteur
2 Mar 23 * Re: Verifier la presence d'un mot dans tous les champs47M.V.
3 Mar 23 +* Re: Verifier la presence d'un mot dans tous les champs2André Favre
3 Mar 23 i`- Re: Verifier la presence d'un mot dans tous les champs1"Benoît L."
3 Mar 23 `* Re: Verifier la presence d'un mot dans tous les champs44M.V.
3 Mar 23  +- Re: Verifier la presence d'un mot dans tous les champs1M.V.
3 Mar 23  `* Re: Verifier la presence d'un mot dans tous les champs42Olivier Miakinen
3 Mar 23   `* Re: Verifier la presence d'un mot dans tous les champs41M.V.
3 Mar 23    `* Re: Verifier la presence d'un mot dans tous les champs40Olivier Miakinen
3 Mar 23     `* Re: Verifier la presence d'un mot dans tous les champs39M.V.
3 Mar 23      `* Re: Verifier la presence d'un mot dans tous les champs38Olivier Miakinen
3 Mar 23       +* Re: Verifier la presence d'un mot dans tous les champs7Olivier Miakinen
3 Mar 23       i`* Re: Verifier la presence d'un mot dans tous les champs6M.V.
4 Mar 23       i `* Re: Verifier la presence d'un mot dans tous les champs5Olivier Miakinen
4 Mar 23       i  `* Re: Verifier la presence d'un mot dans tous les champs4Olivier Miakinen
4 Mar 23       i   `* Re: Verifier la presence d'un mot dans tous les champs3Joseph B
4 Mar 23       i    `* Re: Verifier la presence d'un mot dans tous les champs2Olivier Miakinen
4 Mar 23       i     `- Re: Verifier la presence d'un mot dans tous les champs1Joseph B
3 Mar 23       `* Re: Verifier la presence d'un mot dans tous les champs30M.V.
4 Mar 23        `* Re: Verifier la presence d'un mot dans tous les champs29Olivier Miakinen
4 Mar 23         +- Re: Verifier la presence d'un mot dans tous les champs1M.V.
4 Mar 23         `* Re: Verifier la presence d'un mot dans tous les champs27M.V.
4 Mar 23          +* Re: Verifier la presence d'un mot dans tous les champs3Joseph B
4 Mar 23          i+- Re: Verifier la presence d'un mot dans tous les champs1"Benoît L."
4 Mar 23          i`- Re: Verifier la presence d'un mot dans tous les champs1M.V.
4 Mar 23          `* Re: Verifier la presence d'un mot dans tous les champs23Joseph B
4 Mar 23           `* Re: Verifier la presence d'un mot dans tous les champs22M.V.
4 Mar 23            `* Re: Verifier la presence d'un mot dans tous les champs21M.V.
4 Mar 23             +* Re: Verifier la presence d'un mot dans tous les champs2Joseph B
4 Mar 23             i`- Re: Verifier la presence d'un mot dans tous les champs1M.V.
4 Mar 23             `* Re: Verifier la presence d'un mot dans tous les champs18Olivier Miakinen
4 Mar 23              +* Re: Verifier la presence d'un mot dans tous les champs5M.V.
4 Mar 23              i+* Re: Verifier la presence d'un mot dans tous les champs3"Benoît L."
4 Mar 23              ii`* Re: Verifier la presence d'un mot dans tous les champs2"Benoît L."
4 Mar 23              ii `- Re: Verifier la presence d'un mot dans tous les champs1Joseph B
4 Mar 23              i`- Re: Verifier la presence d'un mot dans tous les champs1Olivier Miakinen
4 Mar 23              +* Re: Verifier la presence d'un mot dans tous les champs2"Benoît L."
4 Mar 23              i`- Re: Verifier la presence d'un mot dans tous les champs1Olivier Miakinen
5 Mar 23              +* Re: Verifier la presence d'un mot dans tous les champs3M.V.
5 Mar 23              i`* Re: Verifier la presence d'un mot dans tous les champs2Olivier Miakinen
5 Mar 23              i `- Re: Verifier la presence d'un mot dans tous les champs1M.V.
5 Mar 23              `* Re: Verifier la presence d'un mot dans tous les champs7Joseph B
5 Mar 23               `* Re: Verifier la presence d'un mot dans tous les champs6Olivier Miakinen
5 Mar 23                `* Re: Verifier la presence d'un mot dans tous les champs5Joseph B
5 Mar 23                 `* Re: Verifier la presence d'un mot dans tous les champs4M.V.
5 Mar 23                  `* Re: Verifier la presence d'un mot dans tous les champs3Joseph B
5 Mar 23                   `* Re: Verifier la presence d'un mot dans tous les champs2Olivier Miakinen
5 Mar 23                    `- Re: Verifier la presence d'un mot dans tous les champs1M.V.

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal