Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : convertir les prix de chiffre en lettre [ Algorithme / Autre ] (karimaitouares)

samedi 3 février 2007 à 18:01:22 | convertir les prix de chiffre en lettre

karimaitouares

je suis coincé sur un point qui me semble important je cherche un algorithme a integrer dans mon application qui me permet de convertir les prix de leur valeur en chiffre en lettre

samedi 3 février 2007 à 19:55:30 | Re : convertir les prix de chiffre en lettre

ThWilliam

Membre Club
Salut,

Cet algorithme existe peut-être, mais c'est amusant à bricoler par soi-même.
Voilà le principe que j'adopterais :
Pour les nombres de 0 à 99, j'encoderais les montants dans un fichier texte (une ligne par montant) que tu charges en mémoire dans un TStringList. L'item[0] = 'zéro', l'item[12] = 'douze'...
Il faut convertir ton nombre en string et créer une fonction qui va analyser ce string en fonction de sa longueur (si tu as besoin de décimales, il faudra d'abord traiter la partie entière, puis la partie fractionnaire).

Exemple : 2354 à convertir.

function Transform(var S: string): string;
begin
case Length(S) of
   1,2 : begin
             Result:= MonStringList.Items[StrToInt(S)]; 
             S:= '';
           end;
      3:  begin
               if StrToInt(S[1] >= 2 then Result:= MonStringList.Items[StrToInt(S[1])] + ' cent '
               else Result:= ' cent ';
               // problème ici : il faut gérer 'cent' ou 'cents' selon qu'il y a des chiffres après
               Delete(S,1,1);
           end;
       4 : begin
                if StrToInt(S[1] >= 2 then Result:= MonStringList.Items[StrToInt(S[1])] + ' mille '
               else Result:= ' mille ';
               // quelle chance, mille est invariable !
               Delete(S,1,1);
            end;
     ...
        
Montant:= IntToStr(2354);
MontantFinal:= '';
while Montant <> '' do
    MontantFinal:= MontantFinal + Transform(Montant);

1° passage : montant final =  'deux mille '
2° passage:  montant final = 'deux mille trois cent '
3° passage: montant final = 'deux mille trois cent cinquante quatre'

Je le répète, ce n'est que le principe, il y a plein de trucs à affiner... et à tester !
 
A +
Thierry   

samedi 3 février 2007 à 20:05:38 | Re : convertir les prix de chiffre en lettre

ThWilliam

Membre Club
Je l'avais dit qu'il y avait plein de choses à affiner !
2024 va me renvoyer 'deux mille cent vingt quatre' : si la longeur est 3 et que le premier caractère est zéro, Result doit être ' '.
Idem pour les 4...
Remarque : remplacer "if StrToInt(S[1]) >= 2" peut devenir plus simplement "if S[1] >= '2' 
Aller, bon amusement.

samedi 3 février 2007 à 23:26:24 | Re : convertir les prix de chiffre en lettre

japee

Membre Club Administrateur CodeS-SourceS
Arrivé sur CodeS-SourceS le 03/02/2007 17:27:55 

Avant toute chose, afin d'utiliser convenablement le forum :

Voir le règlement de CodeS-SourceS

Sinon, y'a pas mal de codes qui font ça plus ou moins bien sur le site (moteur de recherche ! ).
Je suis moi-même en train de travailler sur quelque chose qui y ressemble.

lundi 5 février 2007 à 12:35:52 | Re : convertir les prix de chiffre en lettre

pers

Membre Club
Salut

Japee à bien raison de faire remarquer que ce site est riche en renseignements.
Je dois d'ailleurs y poser peu de questions pourtant je suis un débutant en delphi.

Pour t'aider : http://www.delphifr.com/codes/CHIFFRES-LETTRES-RECURSIVITE_12515.aspx

@+



Cette discussion est classé dans : chiffre, convertir, lettre, prix


Répondre à ce message

Sujets en rapport avec ce message

Convertir Chiffre en Lettre avec QuickReport [ par slim59 ] Slt. J'utilise QuickReport pour imprimer mes factures, mais je n'arrive pas à convertir le montant en chiffre, en Lettre.(j'utilise DBaseIII+)Merci+++ conversion en arabe de chiffre en lettre sous delphi5 [ par azerouk ] SVP je voudrai codes de conversion en arabe de chiffre en lettre merci .sous delphi 5 chiffre en lettre [ par vrachid ] bj a tousy a til un moyen de convertir un chiffre en sa position numérique dans l'alphabet?par exemple si je tape 1 dans un edit j'aurai un A dans l'a chiffre en lettre dans un état de sortie d'une facture en quickreprot [ par saidajerry ] Bonjour tout le monde, s'il y a quelqu'un qui peut m'aider et je le remercie mille fois d'avance.mon problème et que j'ai édité un état de sortie avec transformation SQL [ par simonpelloquin ] Bonjour,Est'il possible de convertir un champ directement dans une requête SQL ?Ex : j'ai deux tables CLIENTS :NUMERO : IntegerNOM : Varchar(50)CONTAC comment convertir un char en sa valeur code touche? [ par mighty_warrior ] Bonsoir,donc ma question: comment convertir un char en sa valeur code touche?par exemple pour la lettre A on sait que son code touche est 65 mais dans Convertir un IDL en .pas [ par bip98 ] Je n'arrive pas à convertir un IDL en .PAS !J'ai fais quelque recherche sur ça.. j'ai trouvé : IDL2PAS et MIDL.EXE mais je n'arrive pas à les faire fo Simple filtrage: "Têtutesse oblige!" [ par leader2000 ] Salut! Je me demande si c'est un oubli ou c'est juste une question d'ignorance. J'ai une table contenant deux champs: CodeBar et Prix. Et sur mon SUM dans mysql [ par armstrong0000 ] Bonjour, bonsoir,J'ai besoin de votre aude pour une requete qui utilise la somme (je crois que c'est de "sum" que vient le probleme)Quand j'execute ce


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.