jennybless
Messages postés38Date d'inscriptionsamedi 30 septembre 2006StatutMembreDernière intervention10 août 2007
-
20 juin 2007 à 15:51
jennybless
Messages postés38Date d'inscriptionsamedi 30 septembre 2006StatutMembreDernière intervention10 août 2007
-
21 juin 2007 à 17:39
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;