Newsgroup: it.comp.lang.visual-basic
Titolo: cifre in lettere

--
la butto li'...
tanto male non fą..
ho ripreso da NG questa routin per covertire cifre in lettere.
Function conv(x)
Dim A(5), B(9), C(9), D(9), E(9)
If x <> 0 Then
A(1) = "cento"
A(2) = "0"
A(3) = "mila"
A(4) = "milioni"
A(5) = ""
E(1) = "mille"
E(2) = "unmilione"
B(1) = "uno"
B(2) = "due"
B(3) = "tre"
B(4) = "quattro"
B(5) = "cinque"
B(6) = "sei"
B(7) = "sette"
B(8) = "otto"
B(9) = "nove"
C(1) = "dieci"
C(2) = "venti"
C(3) = "trenta"
C(4) = "quaranta"
C(5) = "cinquanta"
C(6) = "sessanta"
C(7) = "settanta"
C(8) = "ottanta"
C(9) = "novanta"
D(1) = "undici"
D(2) = "dodici"
D(3) = "tredici"
D(4) = "quattordici"
D(5) = "quindici"
D(6) = "sedici"
D(7) = "diciassette"
D(8) = "diciotto"
D(9) = "diciannove"
L = Len(x)
T = 9 - L
q = "000000000"
x = Mid(q, 1, T) & x
F = 0
st = ""
On L GoTo p1, p2, p3, p4, p5, p6, p7, p8, p9
p9: y = Val(Mid(x, 1, 1))
If y > 0 Then
If y = 1 Then
st = st + A(y)
Else
st = st & B(y) & A(1)
End If
End If
p8: y = Val(Mid(x, 2, 1))
If y > 0 Then
If y = 1 Then
F = 1
Y1 = Val(Mid(x, 3, 1))
If Y1 = 0 Then
st = st & C(Y1 + 1)
Else
st = st & D(Y1)
End If
Else
st = st & C(y)
End If
End If
p7: If F = 0 Then
y = Val(Mid(x, 3, 1))
If y = 1 Then
l1 = Len(st)
st = Mid(st, 1, l1 - 1)           SE SCRIVO 1.000.000 MI DA’ ERRORE
st = st & Mid(B(y), 1, 2) & A(4)
If Len(x) = 7 Then
st = st & E(2)
End If
Else
st = st & B(y) & A(4)
End If
End If
p6: y = Val(Mid(x, 4, 1))
If y > 0 Then
If y = 1 Then
st = st & A(y)
Else
st = st & B(y) & A(1)
End If
End If
p5: y = Val(Mid(x, 5, 1))
F = 0
If y > 0 Then
If y = 1 Then
Y1 = Val(Mid(x, 6, 1))
F = 1
If Y1 = 0 Then
st = st & C(Y1 + 1) & A(3)
Else
st = st & D(Y1) & A(3)
End If
Else
st = st & C(y)
End If
End If
p4: y = Val(Mid(x, 6, 1))
If F = 0 Then
If x > 0 Then
If y = 1 Then
st = Mid(st, 1, Len(st) - 1) & B(y) & A(3)
Else
st = st & B(y) & A(3)
End If
End If
End If
p3: y = Val(Mid(x, 7, 1))
If y > 0 Then
If y = 1 Then
st = st & A(y)
Else
st = st & B(y) & A(1)
End If
End If
p2: y = Val(Mid(x, 8, 1))
F = 0
If y > 0 Then
If y = 1 Then
Y1 = Val(Mid(x, 9, 1))
F = 1
If Y1 = 0 Then
st = st & C(Y1 + 1) & A(5)
Else
st = st & D(Y1) & A(5)
End If
Else
st = st & C(y)
End If
End If
p1: y = Val(Mid(x, 9, 1))
If F = 0 Then
If y > 0 Then
If y = 1 Then
st = Mid(st, 1, Len(st) - 1)
End If
st = st & B(y) & A(5)
Else
st = st & A(5)
End If
End If
conv = st
Else
conv = ""
End If
End Function
mi dicono che questa funzione (usata in access per valorizzare una
colonna) se si scrive 1.000.000 da errore,(st =mid(st, 1, l1 -1)
 se si scrive 2.000.000 o 3.000.000 da come risultato duemilionimila
tremilionimila.
suggerimenti grazie tante
Sent via Deja.com
http://www.deja.com/

 tanto male non fà..


 ha scritto nel messaggio
news:94h7rt$ct3$1...@news.IT.net...


non c'era un'applicazione sul sito comune che serviva proprio a questo?

 ha scritto nel messaggio
news:94h91v$djh$1...@news.IT.net...



--
la butto li'...
tanto male non fà..
please il link o nome NG del sito comune grazie, io programmo su AS/400
no vb thank you!!


 no vb thank you!!
Ti serve, forse, in un altro linguaggio?
Ciao
Basty

,


ho girato mezz'oretta ma non sono riuscito a trovare nulla, per altro
il motore di ricerca è guasto.
se qualcuno ha qualcosa può per cortesia postare a
distema...@libero.it
  togliere NOSPAM (se è - 1.44 mb)
senno' 
maurizio.dis...@ulss12.ve.it
 togliere NOSPAM
obiettivo: da una casella di access dove scrivo un numero devo fare una
chiamata ad una funzione che mi ritorna la scritta in lettere
grazie tante. saluti


 wrote:
Mica per offendere, ma:
- scrivi tutto sotto a una linea composta da 2 trattini e uno spazio,
quindi tutto e' considerato firma e nel reply automaticamente viene
tagliato e non posso quotare niente
- chiedi una risposta via mail, che gia' non sta bene, e *oltretutto*
fornisci pure 2 indirizzi mail con --stupido ed inefficace-- antispam
che *noi* dobbiamo togliere se ti vogliamo rispondere?
Ok, mi sta anche bene, pero' non posso che chiederti se la pasta col
capputtino domattina la preferisci con o senza crema...
Saluti che --io-- sono sempre piu' fuori dal mondo...
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-IV --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD