abracadabraPDF › Forums › PDF – Général › Conversion nombre en lettres
- Ce sujet est vide.
-
CréateurSujet
-
6 février 2019 à 10:52 #46007mimizMembre
Bonjour à toute la communauté!
Ravi d’avoir encore besoin de votre aide :Smiley03:
Cette fois-ci par contre j’ai essayer de d’abord manipuler un peu de javascript pour avoir ce que je veux avant de vous solliciter.
Mais je tombe sur des résultats super bizarres que me rendent fou depuis 4 jours! :mur: .
Donc j’ai récupéré un script pour convertir un nombre en lettres sur ce topic:
https://abracadabrapdf.net/forum/index.php/topic,2921.msg16517.html#msg16517Sauf qu’il ne gère pas les virgules.
Je l’ai un peu bricolé en étudiant un peu le code sauf que j’ai des erreurs bizarres !
par exemple sur 40,30 et plein d’autres nombre avec des virgules.
si quelqu’un veux bien y jeter un coup d’oeil.
Merci d’avance -
CréateurSujet
-
AuteurRéponses
-
6 février 2019 à 15:35 #65225bebarthMaître des clés
bonjour,
Je suis repartis du fichier original.
Merci Alex.
@+
:bonjour:6 février 2019 à 18:43 #65226MerlinMaître des clésExcellent bebarth, comme toujours.
:bravo:6 février 2019 à 18:51 #65227MerlinMaître des clésJe m’étais penché dessus (avant de me faire griller :Smiley03:) mais sans vraiment y arriver.
Par-contre je viens de m’apercevoir que le script ne respecte pas les règles d’accord des nombres ni les traits d’union.
On peut peut-être faire des concessions pour ces derniers, mais pour les accords… Je sais que les règles françaises sont ubuesques mais il faut bien les respecter… :mur:Je vais m’y re-pencher :priere:
20 et 100 s’accordent quand ils sont multipliés par un nombre sans être suivis par un autre nombre : https://leconjugueur.lefigaro.fr/frlesnombres.php
6 février 2019 à 19:49 #65228bebarthMaître des clés…effectivement, je n’ai pas du tout regardé ça ! J’ai pris le script d’Alex tel quel.
J’ai bien pensé à mettre euro et centime au singulier pour un, mais pas le reste.
J’essaie de regarder ça demain.
@+
:bonjour:7 février 2019 à 07:47 #65229mimizMembreBonjour à tous !!
Merci bebarth, mais y’a toujours le problème du “un” avant “mille” qui n’est pas très jojo !
en plus j’aimerai bien que tu m’explique un peu, car je ne comprends pas trop comment t’a fait pour éclater la fonction en deux “init” et “conversion” .
tu peux m’expliquer un peu comment tout ça marche !?7 février 2019 à 08:30 #65230bebarthMaître des clésbonjour,
Je suis parti sur le principe que le script d’Alex est correct, donc je découpe le nombre en 2 parties : avant et après la virgule et je les envois à la fonction d’Alex séparément puis je les rassemble pour les afficher dans le champ.
Il y a peut-être des lignes inutiles dans le script d’Alex qui pourraient être retirée pour cette application, mais je n’ai pas regardé.
Dans les scripts de document, “init” n’est pas une fonction, mais un script lu à l’ouverture du document pour initialiser les différentes variables. Une fonction est lue lorsqu’elle est appelée.
@+
:bonjour:7 février 2019 à 10:24 #65231bebarthMaître des clésOn peut peut-être faire des concessions pour ces derniers, mais pour les accords… Je sais que les règles françaises sont ubuesques mais il faut bien les respecter… :mur:
Je pense traiter la chaîne de caractères finale plutôt que chercher à modifier le script d’Alex, sinon il va y avoir un paquet de conditions avec plein d’exceptions !
Alors que dans le résultat final on ne traite que le résultat !!!
@+
:bonjour:7 février 2019 à 12:19 #65232mimizMembreExactement ! ça va minimiser au max les conditions.
On attend alors!!!
Merci d’avance !7 février 2019 à 14:34 #65233bebarthMaître des clésMerci de me dire si je suis passé à côté de certaines règles !
@+
:bonjour:7 février 2019 à 16:12 #65234MerlinMaître des clésExcellent bebarth, comme toujours.
:bravo:Bis.
8 février 2019 à 15:13 #65235mimizMembreBonjour!
Franchement bravo BB! :bravo:
et (un) mille merci !!! :geek:
……
……
……
Sauf que ce “un” il arrive à un autre endroit ! :doute:8 février 2019 à 15:50 #65236bebarthMaître des clésbonjour,
Ça ne devrait pas être très compliqué à résoudre, mais je vais essayer de reprendre le script total à ma sauce, car j’ai vu d’autres petits soucis comme par exemple on ne dit pas un million euros, mais un million d’euros. Idem pour milliard (même si on ne les a pas :geek: ).
Ça va sûrement être compliqué ce week-end… ce sera certainement en début de semaine prochaine !
@+
:bonjour:8 février 2019 à 17:20 #65237MerlinMaître des cléson ne dit pas un million euros, mais un million d’euros.
Moi je dis : laisse tomber les euros, le script devrait juste donner un nombre. Si on veut des €, des $ ou autres, il suffit de l’ajouter avant ou après. soit dans le fond de page, soit en l’ajoutant au texte/string final.
:geek:Idem pour milliard (même si on ne les a pas)
Zut, je ne vais pas pouvoir m’en servir pour mes comptes perso…
:Smiley03:9 février 2019 à 12:17 #65238MerlinMaître des clésVoilà un petit script pour capitaliser la première lettre du nombre :
Code:/* script de format */
// capitalise la première lettre du champ
var str = event.target.value;
event.value = str.replace(/(^).{1}/g,function(cWrd){return cWrd.toUpperCase()});:Smiley15:
11 février 2019 à 09:42 #65239mimizMembreBonjour;
Je suis d’accord avec merlin. l’idée de changer la monnaie sans retoucher le code est meilleure11 février 2019 à 15:05 #65240bebarthMaître des clésbonjour,
… mais je vais essayer de reprendre le script total à ma sauce…
J’ai commencé et je suis arrivé à peu près à la même logique qu’Alex, j’ai donc conservé pratiquement toute la partie “fonction” !
Du coup, il y a deux versions : avec et sans monnaie.
Je n’ai pas testé tous les nombres, mais normalement tu devrais pouvoir écrire jusqu’à 999 trillions et des brouettes…. (999 x 1018).
Si tu regardes le script, il est prévu pour beaucoup plus (1064) mais je n’avais pas pensé qu’Acrobat était si limité… :geek:
Merci de me dire s’il y a encore des erreurs.
J’ai vu qu’avec la nouvelle orthographe il fallait mettre des tirets partout, mais tant pis. Quelqu’un d’autre s’en chargera s’il le désire !
@+
:bonjour:11 février 2019 à 21:46 #65241MerlinMaître des clésnormalement tu devrais pouvoir écrire jusqu’à 999 trillions et des brouettes….
Échelle longue ou échelle courte ? :Smiley03:
https://fr.wikipedia.org/wiki/%C3%89chelles_longue_et_courte
:Euuuh: :mur: :oh:11 février 2019 à 22:28 #65242MerlinMaître des clésJ’ai vu qu’avec la nouvelle orthographe il fallait mettre des tirets partout
Où as-tu vu ça ?
En tout cas jusqu’ici ça à l’air correct.
:bravo:12 février 2019 à 06:59 #65243bebarthMaître des clésbojour,
Où as-tu vu ça ?
A plusieurs endroits :
https://leconjugueur.lefigaro.fr/frlesnombres.php
https://www.lalanguefrancaise.com/orthographe/guide-complet-nouvelle-orthographe/
https://www.cyberentraide.com/nouvelle-orthographe-nombres-lettres/
…La recommandation de 1990 n’était pas obligatoire, je ne sais pas ce qu’il en est de la nouvelle orthographe !
@+
:bonjour:12 février 2019 à 09:24 #65244MerlinMaître des clésLa recommandation de 1990 n’était pas obligatoire
Ouf !
:geek:Mais a priori depuis 1990 c’est plus facile à scripter. Il me parait plus simple de mettre des traits d’union partout que d’en mettre ici mais pas là, sauf si…
:Euuuh:Parce-que certaines règles atteignent quand même des sommets d’absurdité :
– Certains de ces adjectifs numéraux cardinaux peuvent avoir une valeur ordinale pour exprimer l’année, le jour, les parties d’un ouvrage, le numéro d’une rue, le nom d’un souverain… ils restent alors invariables :
– un est invariable en nombre mais pas en genre : cinquante et une pages
– …
:mur:12 février 2019 à 10:43 #65245bebarthMaître des clésParce-que certaines règles atteignent quand même des sommets d’absurdité :
– Certains de ces adjectifs numéraux cardinaux peuvent avoir une valeur ordinale pour exprimer l’année, le jour, les parties d’un ouvrage, le numéro d’une rue, le nom d’un souverain… ils restent alors invariables :
– un est invariable en nombre mais pas en genre : cinquante et une pagesCes règles sont peut-être un peu compliquées mais personnellement ne me paraissent pas absurdes (peut-être y en a-t-il d’autres qui le sont…).
Si l’on parle des tomes un, ou des numéros un des rues, je ne vois pas pourquoi on mettrait un “s” à un !
Idem pour cinquante et une pages qui signifie cinquante plus une… pages !
Bien qu’adjectif numéral cardinal, “un” qualifie l’unité de base.
Voici un fichier avec la nouvelle orthographe. j’ai juste rajouté des traits d’union où il en fallait pour garder un script commun.
Il aurait fallu revoir un peu le script pour en faire un spécifique…
@+
:bonjour:14 février 2019 à 12:50 #65246MerlinMaître des clésOK, mais si on compare avec les règles de l’Anglais il n’y a pas photo !
:joker:En tout cas je viens de prendre une gifle… :Smiley07: :Smiley07:
Dans ce script je viens de découvrir startsWith et replace !!!
Bien sur on peut s’en passer, mais c’est tellement plus simple.
:contentdance:14 février 2019 à 13:27 #65247bebarthMaître des clésOK, mais si on compare avec les règles de l’Anglais il n’y a pas photo !
parce qu’il y a des règles en anglais ??? :geek:
…pareil pour endsWith, ça simplifie la vie certaines fois !
Il y avait également “includes”, mais cette méthode ne fonctionne apparemment plus (du moins je n’ai jamais réussi).
https://www.w3schools.com/jsref/jsref_includes.asp
@+
:bonjour:15 février 2019 à 09:02 #65248mimizMembreFranchement !
Bravo ! :bravo: :bonjour:19 juillet 2019 à 08:15 #65249bebarthMaître des clésbonjour,
Voici une mise à jour du fichier avec une légère modification du script et quelques corrections d’erreurs signalées.
Du coup, on peut écrire jusqu’à 999 quintillions (999 * 10^27). On pourrait plus, mais est-ce que ça vaut le coup ??? Il suffit de rallonger la table des préfixes…
@+
:bonjour:25 juillet 2019 à 09:29 #65250mimizMembreMerci BB !!
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.