Newsgroup: it.comp.lang.visual-basic
Titolo: [!] Conversione Numeri - Lettere ho trovato un OCX

Ciao, curiosando qua e la ho trovato un OCX (Freeware) che converte i numeri
in lettere, premetto che NON l'ho scaricato e, quindi, tantomeno provato.
Chi e' interessato lo trova qui:
http://w3.penteres.it/~never/activex.htm#NumberToChar
Date anche un'occhiata all'home page che mi e' sembrata interessante.
http://w3.penteres.it/~never/
Ciao
--
Andrea :-{)
acm...@hotmail.com
================================================
Leggi 
http://beatles.cselt.it/news-it/FAQ.html
 e
http://beatles.cselt.it/news-it/gruppi-it.html
Potresti imparare qualcosa di piu' sui NG
================================================


Se invece pensate che sia stupido usare un OCX per una cosa cosi' banale e
avete la pazienza di aspettare qualche giorno, mandero' sul Sito Comune una
funzione (con sorgenti) che fa la stessa cosa (e ANCHE in diverse lingue).
SOURCE batte OCX 1 a 0   :-)
--
Roal Zanazzi
z...@iol.it

...


 in lettere, premetto che NON l'ho scaricato e, quindi, tantomeno provato.
Tempo fa ho sviluppato una funzioncina che accludo.  Basta fare copia e
incolla...
E' abbastanza corta e funziona bene.
è sufficiente richiamarla così:
DIM numero AS Currency
DIM parola AS String
numero = 123456789       ' o quello che vi pare
parola = NumPar(numero)
Public Function NumPar(Numero As Currency) As String
  Static Sw As Boolean
  Static Px1(9) As String
  Static Px2(8) As String
  Static Px3(10) As String
  Static Px0(2, 4) As String
  Static Px4 As String
  Dim Px As String
  Dim Tx As String
  If Not Sw Then
    Sw = True
    Px0(1, 1) = "UNO"
    Px0(2, 1) = ""
    Px0(1, 2) = "MILLE"
    Px0(2, 2) = "MILA"
    Px0(1, 3) = "UNMILIONE"
    Px0(2, 3) = "MILIONI"
    Px0(1, 4) = "UNMILIARDO"
    Px0(2, 4) = "MILIARDI"
    Px1(1) = "UNO"
    Px1(2) = "DUE"
    Px1(3) = "TRE"
    Px1(4) = "QUATTRO"
    Px1(5) = "CINQUE"
    Px1(6) = "SEI"
    Px1(7) = "SETTE"
    Px1(8) = "OTTO"
    Px1(9) = "NOVE"
    Px2(1) = "VENT"
    Px2(2) = "TRENT"
    Px2(3) = "QUARANT"
    Px2(4) = "CINQUANT"
    Px2(5) = "SESSANT"
    Px2(6) = "SETTANT"
    Px2(7) = "OTTANT"
    Px2(8) = "NOVANT"
    Px3(1) = "DIECI"
    Px3(2) = "UNDICI"
    Px3(3) = "DODICI"
    Px3(4) = "TREDICI"
    Px3(5) = "QUATTORDICI"
    Px3(6) = "QUINDICI"
    Px3(7) = "SEDICI"
    Px3(8) = "DICIASSETTE"
    Px3(9) = "DICIOTTO"
    Px3(10) = "DICIANNOVE"
    Px4 = "CENT"
  End If
 
  If Numero = 0 Then
    Px = "ZERO"
  Else
    Tx = Format(Int(Abs(Numero)), String(11, 48) & "#")
    For i = 4 To 1 Step -1
      If Val(Mid(Tx, 13 - 3 * i, 3)) > 0 Then
        If Val(Mid(Tx, 13 - 3 * i, 3)) = 1 Then
          j = 1
        Else
          j = 2
          If Mid(Tx, 13 - 3 * i, 1) > "1" Then
            Px = Px + Px1(Val(Mid(Tx, 13 - 3 * i, 1)))
          End If
          If Mid(Tx, 13 - 3 * i, 1) >= "1" Then
            Px = Px + Px4
            If Mid(Tx, 14 - 3 * i, 1) <> "8" Then
              Px = Px + "O"
            End If
          End If
          If Mid(Tx, 14 - 3 * i, 1) = "1" Then
            Px = Px + Px3(Val(Mid(Tx, 15 - 3 * i, 1)) + 1)
          Else
            If Mid(Tx, 14 - 3 * i, 1) = "0" Then
              Px = Px + Px1(Val(Mid(Tx, 15 - 3 * i, 1)))
            Else
              Px = Px + Px2(Val(Mid(Tx, 14 - 3 * i, 1)) - 1)
              If Mid(Tx, 15 - 3 * i, 1) <> "1" And _
                 Mid(Tx, 15 - 3 * i, 1) <> "8" Then
                If Mid(Tx, 14 - 3 * i, 1) = "2" Then
                  Px = Px + "I"
                Else
                  Px = Px + "A"
                End If
              End If
              Px = Px + Px1(Val(Mid(Tx, 15 - 3 * i, 1)))
            End If
          End If
        End If
        Px = Px + Px0(j, i)
      End If
    Next
  End If
  NumPar = Px
End Function
-- 
/-------------------------------------------------\
| Bepi Rospi                                      |
|                                                 |
| mailto:
be...@multiwire.net
                       |
\-------------------------------------------------/