Comment changer des chiffres en lettres dans une autre langue? [Résolu]

Signaler
Messages postés
38
Date d'inscription
samedi 30 septembre 2006
Statut
Membre
Dernière intervention
10 août 2007
-
Messages postés
38
Date d'inscription
samedi 30 septembre 2006
Statut
Membre
Dernière intervention
10 août 2007
-
Salut!


Les codes ci-aprés ne sont pas écrit par moi. Ils fonctionnent parfaitement. C'est juste une convertion des chiffres en lettres. Bref, cela se fait en Dinars (monnaie algérienne).


J'ai dû m'exercer sur ces codes en essayant de traduire par exemple les lettres en une autre langue. Mais je n'en arrive pas. Le mot "dinars" par exemple peut être converti en "Franc" par exemple (prière de voir dans les dits codes). Mais la traduction par exemple Cent Vingt et trois Centimes est impossible en anglais par exemple Hundred and Twenty Centimes.

Le probléme devra être là où s'est coloré en blue. Voilà tout et merci d'avance.

var
C, D, centimes, dinars : string;
car : array [1..3] of string;
I, Y, Z : integer;
begin
   S:=Edit1.text;
   If (S='') then // si la chaine S est vide Erreur
   begin
     Application.MessageBox('Veuillez Saisir une somme d''abord.', 'Erreur: Rien à convertir !',mb_IconError+mb_Ok);
     exit;
   end;
   i:=0;// connaitre la position du separateur decimale
   While not((S[i]='.') or(i > length(S))) do
    begin
     i:=i+1;
    end;
   C:=copy(S,i,1);
   if C='.' then // s'il y a un nombre decimale
    begin
     D:=copy(S,1,(i-1));
     dinars:=enLettres(StrToInt(d));
     centimes:=copy(S, i+1, (Length(S)-i));
     // remplir un tableau car par des chaines vides
     for y:=1 to 3 do     // Le nombre de Zero permit et de 3 maxi !
      begin
       car[y]:='';
      end;
     y:=0; // Y represente le nombre de Zero apres le separateur decimale
     z:=i+1;
     While (S[z]='0') or(z > length(S)) do
      begin
       y:=y+1;
       z:=z+1;
       car[y]:='Zero ';
      end;
     //s'il y a des Zero apres le separateur decimale
     if y>0 then
      // il faut l'ecrire -- maxi 3 nombres ont la valeur egal à 0, soit permit
      centimes:=' et '+car[1]+car[2]+car[3]+enLettres(StrToInt(centimes))+' Centimes'
      else // sinon il n'y a pas de zero à ecrire
        centimes:=' et'+enLettres(StrToInt(centimes))+' Centimes';
    label8.caption:=dinars+' Dinars Algerien'+centimes;
    end
   else // sinon lire la partie entiere
    begin
    D:=copy(S,1,(length(S)));
    dinars:=enLettres(StrToInt(D));
    label8.caption:=dinars+' Dinars Algérien';
    end; // else
end;


 

3 réponses

Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
Bonjour,
30 secondes de recherche sur google :
http://delphi.about.com/od/objectpascalide/a/curr2words.htm

Dom
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
5
As-tu trouvé ce que tu cherchais ?

Dom
Messages postés
38
Date d'inscription
samedi 30 septembre 2006
Statut
Membre
Dernière intervention
10 août 2007

Dom!

C'est avec beaucoup de reconnaissance que je te redige ce message. Grand merci de m'avoir donné ce lien. Tu m'a vraiment porté secours.

JennyBless