Newsgroup: it.comp.lang.visual-basic
Titolo: Conversione Numeri -> Lettere ?

Ciao,
vorrei sapere se qualcuno ha già realizzato la procedura per la converione
di numeri in lettere es.: 1997 -> millenovecentonovantasette, oppure se
esiste in qualche sito un esempio abbastanza completo.
Io ho provato creando una matrice ma bisogna scrivere delle giornate !!!!
Grazie !
Fabio.

Fabio Benedetti ha scritto nel messaggio
<01bcf29d$bf9f32c0$2df678c3@fabio>...

prova con questa macro di WORD e adattala
Public Sub MAIN()
Dim N1$
Dim N$
Dim nn
Dim V
Dim flag
Dim m$
N1$ = ""
On Error GoTo -1: On Error GoTo fine2
WordBasic.WordLeft 1, 1
N$ = WordBasic.[Selection$]()
ReDim u__$(20), d__$(20)
u__$(1) = "uno"
u__$(2) = "due"
u__$(3) = "tre"
u__$(4) = "quattro"
u__$(5) = "cinque"
u__$(6) = "sei"
u__$(7) = "sette"
u__$(8) = "otto"
u__$(9) = "nove"
u__$(10) = "dieci"
u__$(11) = "undici"
u__$(12) = "dodici"
u__$(13) = "tredici"
u__$(14) = "quattordici"
u__$(15) = "quindici"
u__$(16) = "sedici"
u__$(17) = "diciassette"
u__$(18) = "diciotto"
u__$(19) = "diciannove"
d__$(2) = "venti"
d__$(3) = "trenta"
d__$(4) = "quaranta"
d__$(5) = "cinquanta"
d__$(6) = "sessanta"
d__$(7) = "settanta"
d__$(8) = "ottanta"
d__$(9) = "novanta"
nn = WordBasic.Val(N$)
If nn < 0 Or nn > 100000000000000# Then GoTo fine
Select Case Len(N$)
Case 1, 4, 7, 10
GoTo unita
Case 2, 5, 8, 11
GoTo decine
Case 3, 6, 9, 12
GoTo centinaia
Case Else
GoTo fine
End Select
centinaia:
V = WordBasic.Val(WordBasic.[Left$](N$, 1))
If V > 1 Then N1$ = N1$ + u__$(V)
If V <> 0 Then N1$ = N1$ + "cento"
N$ = WordBasic.[Right$](N$, Len(N$) - 1)
decine:
flag = 0
V = WordBasic.Val(WordBasic.[Left$](N$, 1))
If V <> 0 Then
    If V = 1 Then
        V = WordBasic.Val(WordBasic.[Left$](N$, 2))
        N1$ = N1$ + u__$(V)
        N$ = WordBasic.[Right$](N$, Len(N$) - 1)
        flag = 1
    Else
        N1$ = N1$ + d__$(V)
        m$ = Mid(N$, 2, 1)
        If m$ = "1" Or m$ = "8" Then N1$ = WordBasic.[Left$](N1$, Len(N1$) -
1)
    End If
End If
N$ = WordBasic.[Right$](N$, Len(N$) - 1)
unita:
If Not flag = 1 Then
    V = WordBasic.Val(WordBasic.[Left$](N$, 1))
    If V <> 1 Or Len(N$) <> 4 Then N1$ = N1$ + u__$(V)
    If V = 1 And Len(N$) > 4 Then N1$ = WordBasic.[Left$](N1$, Len(N1$) - 1)
    N$ = WordBasic.[Right$](N$, Len(N$) - 1)
End If
Select Case Len(N$)
'Case 0
'   Goto FINE
    Case 3
        If V = 1 Then N1$ = N1$ + "mille" Else N1$ = N1$ + "mila"
    Case 6
        If V = 1 Then N1$ = N1$ + "milione" Else N1$ = N1$ + "milioni"
    Case 9
        If V = 1 Then N1$ = N1$ + "miliardo" Else N1$ = N1$ + "miliardi"
    Case Else
        GoTo fine
End Select
GoTo centinaia
'*********************************************
fine:
'ModificaTaglia
WordBasic.Insert N1$
fine2:
End Sub

 Fabio.
Ciao Fabio
se cerchi una routine che trasforma le cifre in lettere fose ho quello
che fa per te: cerca all`indirizzo 
ftp://ftp.areacom.it/vb32/
il file e` assegno.zip.
Mail me at 
fma...@rocketmail.com

Ciao a tutti: sono in leggera difficolta`. Ho realizzato un programma
tipo Notepad di windows95, utilizzando il controllo RTF (il Textbox e`
troppo limitato). Questo comtrollo gestisce anche la funzione annulla,
infatti basta premere CTRL+Z e tutto funziona benissimo. Il problema
sorge quando voglio annullare l`ultima azione non da tastiera ma dal
menu`: ho provato con la funzione "sendkeys" ma non funziona,forse
perche` il controllo RTF e` in una form child e non riesce a
raggiungerlo... Bho, le ho provate tutte!!
Eterna riconoscenza alla buonanima che mi aiutera`!
-----------------------------------
E-MAIL ME AT 
fma...@rocketmail.com
-----------------------------------

L'algoritmo è un po' complesso, ci ho messo diversi giorni a svilupparlo,
poi ho trovato anche un esempio allegato in un libro, meno sofisticato del
mio ma funzionante.
Se interessa vado a ricercare dov'era.
Art