Newsgroup: it.comp.lang.delphi
Titolo: conversione numeri in lettere

Esiste qualcosa che traduca un importo (1500) in lettere (millecinquecento)
?
Ciao
Ilenia
 
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Esiste qualcosa che traduca un importo (1500) in lettere (millecinquecento)?
Prova questo /tip/, vedi se può esserti d'aiuto:
http://makeashorterlink.com/?O537113A9
Ciao! :-)
-- 
Marco «Alka» Breveglieri
  ABLS Team S.n.c. - Software & Web
  Via De Gasperi, 14
  42019 Scandiano (Reggio Emilia)
 
http://www.abls.it


Grazie :-))


?
Prova con questo componente: BVerbose v.1.0
Cercalo in questa pagina 
http://www.torry.net/pages.php?id=274
E' di un italiano.
Ciao
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

Questo è il codice che utilizzo io, se lo modificate/migliorate
fatemene avere una copia grazie...
function NumeroInLettere( nNumero: Currency): String;
var
   nTemp: Currency;
   aLett: array [1..28] of string;
   nP1, nP2, nP3, nI: integer;
begin
   if nNumero=0 then
   begin
      Result:='zero';
      exit;
   end;
   aLett[1]:='';
   aLett[2]:='uno';
   aLett[3]:='due';
   aLett[4]:='tre';
   aLett[5]:='quattro';
   aLett[6]:='cinque';
   aLett[7]:='sei';
   aLett[8]:='sette';
   aLett[9]:='otto';
   aLett[10]:='nove';
   aLett[11]:='dieci';
   aLett[12]:='undici';
   aLett[13]:='dodici';
   aLett[14]:='tredici';
   aLett[15]:='quattordici';
   aLett[16]:='quindici';
   aLett[17]:='sedici';
   aLett[18]:='diciassette';
   aLett[19]:='diciotto';
   aLett[20]:='diciannove';
   aLett[21]:='venti';
   aLett[22]:='trenta';
   aLett[23]:='quaranta';
   aLett[24]:='cinquanta';
   aLett[25]:='sessanta';
   aLett[26]:='settanta';
   aLett[27]:='ottanta';
   aLett[28]:='novanta';
   for nI:=3 DownTo 0 do
   begin
      nTemp:=nNumero/Power(1000,nI);
      nP1:=Trunc(nTemp);
      if nP1>0 then
      begin
         nP2:=nP1;
         if nP2>99 then
         begin
            nTemp:=nP2/100;
            nP3:=Trunc(nTemp);
            nP2:=nP2-nP3*100;
            if nP3=1 then
                Result:=Result+'cento'
            else
                Result:=Result + aLett[nP3 + 1] + 'cento';
         end;
         if nP2<=20 then
            Result:=Result+aLett[nP2 + 1]
         else begin
            nTemp:=nP2/10;
            nP3:=Trunc(nTemp);
            Result:=Result+aLett[nP3 + 19];
            nP2:=nP2-nP3*10;
            if (nP2=1) or (nP2=8) then
                Result:=Copy(Result,1,Length(Result)-1);
            Result:=Result+aLett[nP2 + 1];
         end;
         if nI=1 then
         begin
            if nP1=1 then
               Result:=Copy(Result, 1, Length(Result) - 3) + 'mille'
            else
               Result:=Result+'mila';
         end else if nI=2 then
         begin
            if nP1=1 then
               Result:=Copy(Result, 1, Length(Result) - 3) + 'unmilione'
            else
               Result:=Result+'milioni';
         end else if nI=3 then
         begin
            if nP1=1 then
               Result:=Copy(Result, 1, Length(Result) - 3) + 'unmiliardo'
            else
               Result:=Result+'miliardi';
         end;
         nNumero:=nNumero-nP1*Power(1000,nI);
      end;
   end;
end;
function NumeroInEuro( nNumero: Currency): String;
var
  nDec: integer;
  cDec: string;
begin
  nDec:=trunc((nNumero - Trunc(nNumero)) * 100);
  cDec:=IntToStr(nDec); if length(cDec)<2 then cDec:='0'+cDec;
  Result:=NumeroInLettere(Trunc(nNumero))+' / '+ cDec;
end;
-- 
Ciao
Marco Kregar
marco....@FirebirdSQL.it
www.FirebirdSQL.it
"over the bench the goat sings, under the bench the goat dies"