Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-06-2006, 14:06   #1
Joblack84
Member
 
Iscritto dal: Apr 2006
Messaggi: 194
convertire un numero in lettere

Mi servirebbe sapere conme convertire un numero in lettere ad esempio 11 con undici. uso il vb6
Joblack84 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 14:19   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Joblack84
Mi servirebbe sapere conme convertire un numero in lettere ad esempio 11 con undici. uso il vb6
Credo che valga per qualunque linguaggio .... non esiste una funzione "standard" che faccia questo, è una cosa troppo specifica.
Io comunque avevo fatto una funzione in "C" che convertiva appunto un numero nella sua forma "letterale". L'algoritmo non è neanche particolarmente complicato, almeno per quanto riguarda l'italiano è semplice.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 14:25   #3
Joblack84
Member
 
Iscritto dal: Apr 2006
Messaggi: 194
Quote:
Originariamente inviato da andbin
Credo che valga per qualunque linguaggio .... non esiste una funzione "standard" che faccia questo, è una cosa troppo specifica.
Io comunque avevo fatto una funzione in "C" che convertiva appunto un numero nella sua forma "letterale". L'algoritmo non è neanche particolarmente complicato, almeno per quanto riguarda l'italiano è semplice.
e puoi gentilmente aiutarmi dicendomi l'algoritmo
Joblack84 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 14:34   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Joblack84
e puoi gentilmente aiutarmi dicendomi l'algoritmo
Certo ... solo che in questo momento non lo ricordo di preciso! Stasera a casa riprendo quel mio (vecchio) sorgente e se vuoi lo posto e lo spiego.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 14:39   #5
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Ti riporto un codice che avevo fatto tantissimi anni fa in vb6, assolutamente non ottimizzato ma perfettamente funzionante sia con numeri grandi grandi che con la virgola; restituisce una stringa.

Codice:
Public Function NumeroInLettere(NrAnalizzato As String, Optional Valuta As String, Optional Formato As Byte) As String
    'NrAnalizzato = Numero da convertire
    'Valuta = lire, euro, £, € oppure vuoto
    'Formato= 0 tutto minuscolo, 1 tutto maiuscolo,
    '2 primo carattere maiuscolo se omesso è uguale a 0
    Dim Miliardi, Milioni, Migliaia, Centinaia, Centesimi, inLettere
    NrAnalizzato = Right("000000000000" & Format(NrAnalizzato, "###0.00"), 15)
    NrAnalizzato = Left(NrAnalizzato, 12) & "0" & Right(NrAnalizzato, 2)
    If Val(Mid(NrAnalizzato, 1, 3)) = 1 Then Miliardi = "unmiliardo"
    If Val(Mid(NrAnalizzato, 1, 3)) > 1 Then Miliardi = DefinisciNumero(Mid(NrAnalizzato, 1, 3)) & "miliardi"
    If Val(Mid(NrAnalizzato, 4, 3)) = 1 Then Milioni = "unmilione"
    If Val(Mid(NrAnalizzato, 4, 3)) > 1 Then Milioni = DefinisciNumero(Mid(NrAnalizzato, 4, 3)) & "milioni"
    If Val(Mid(NrAnalizzato, 7, 3)) = 1 Then Migliaia = "mille"
    If Val(Mid(NrAnalizzato, 7, 3)) > 1 Then Migliaia = DefinisciNumero(Mid(NrAnalizzato, 7, 3)) & "mila"
    If Val(Mid(NrAnalizzato, 10, 3)) = 1 Then Centinaia = "cento"
    If Val(Mid(NrAnalizzato, 10, 3)) > 1 Then Centinaia = DefinisciNumero(Mid(NrAnalizzato, 10, 3))
    If Val(Mid(NrAnalizzato, 13, 3)) = 1 Then Centesimi = "uncentesimo"
    If Val(Mid(NrAnalizzato, 13, 3)) > 1 Then Centesimi = DefinisciNumero(Mid(NrAnalizzato, 13, 3)) & "centesimi"
    If Centinaia = "" And Migliaia = "" And Valuta <> "" Then Valuta = "di" & Valuta
    inLettere = Miliardi & Milioni & Migliaia & Centinaia & Valuta & Centesimi
    If Formato = 0 Then NumeroInLettere = StrConv(inLettere, vbLowerCase)
    If Formato = 1 Then NumeroInLettere = StrConv(inLettere, vbUpperCase)
    If Formato = 2 Then NumeroInLettere = StrConv(inLettere, vbProperCase)
End Function

Function DefinisciNumero(Numero000 As String) As String
    Dim numero0
    Dim nrCento, nrDieci, stNumero0
    nrCento = Val(Mid(Numero000, 1, 1))
    nrDieci = Val(Mid(Numero000, 2, 2))
    numero0 = Array("zero", "uno", "due", "tre", "quattro", "cinque", "sei", "sette", _
                    "otto", "nove", "dieci", "undici", "dodici", "tredici", "quattordici", _
                    "quindici", "sedici", "diciassette", "diciotto", "diciannove", "venti", _
                    "ventuno", "ventidue", "ventitre", _
                    "ventiquattro", "venticinque", "ventisei", "ventisette", "ventotto", "ventinove", _
                    "trenta", "trentuno", "trentadue", "trentatre", "trentaquattro", "trentacinque", _
                    "trentasei", "trentasette", "trentotto", "trentanove", "quaranta", "quarantuno", _
                    "quarantadue", "quarantatre", "quarantaquattro", "quarantacinque", _
                    "quarantasei", "quarantasette", "quarantotto", "quarantanove", "cinquanta", "cinquantuno", _
                    "cinquantadue", "cinquantatre", "cinquantaquattro", "cinquantacinque", "cinquantasei", "cinquantasette", _
                    "cinquantotto", "cinquantanove", "sessanta", "sessantuno", "sessantadue", "sessantatre", _
                    "sessantaquattro", "sessantacinque", _
                    "sessantasei", "sessantasette", "sessantotto", _
                    "sessantanove", "settanta", "settantuno", _
                    "settantadue", "settantatre", _
                    "settantaquattro", "settantacinque", _
                    "settantasei", "settantasette", "settantotto", _
                    "settantanove", "ottanta", "ottantuno", _
                    "ottantadue", "ottantatre", "ottantaquattro", _
                    "ottantacinque", "ottantasei", "ottantasette", _
                    "ottantotto", "ottantanove", "novanta", _
                    "novantuno", "novantadue", "novantatre", _
                    "novantaquattro", "novantacinque", _
                    "novantasei", "novantasette", "novantotto", _
                    "novantanove")
    If nrCento = 1 Then stNumero0 = "cento"
    If nrCento > 1 Then stNumero0 = numero0(nrCento) & "cento"
    If nrDieci > 0 Then stNumero0 = stNumero0 & numero0(nrDieci)
                                            
    DefinisciNumero = stNumero0
End Function
L' uso è ad esempio questo:
Codice:
Private Sub Command1_Click()
    Text1.Text = NumeroInLettere(123456)
End Sub
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 14:44   #6
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Ecco, questo l' ho trovato in un altro progetto che avevo fatto tanto tempo fa ... ed è più ottimizzato e corto, ma non supporta i numeri decimali.

Codice:
Function Lettere(wknumero) As String
    Dim WkCentinaia, WkMigliaia, WkMilioni, WkMiliardi, WkStringa As String
    Dim pass As Byte
    wknumero = Str$(Int(wknumero))
    wknumero = Space(12 - Len(wknumero)) + wknumero
    WkMiliardi = Left$(wknumero, 3)
    WkMilioni = Mid$(wknumero, 4, 3)
    WkMigliaia = Mid$(wknumero, 7, 3)
    WkCentinaia = Mid$(wknumero, 10, 3)
    WkStringa = ""
    For pass = 1 To 4
        Select Case pass
            Case Is = 1
                If Val(WkMiliardi) = 1 Then
                    WkStringa = WkStringa + "unmiliardo"
                End If
                If Val(WkMiliardi) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMiliardi) + "miliardi"
                End If
            Case Is = 2
                If Val(WkMilioni) = 1 Then
                    WkStringa = WkStringa + "unmilione"
                End If
                If Val(WkMilioni) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMilioni) + "milioni"
                End If
            Case Is = 3
                If Val(WkMigliaia) = 1 Then
                    WkStringa = WkStringa + "mille"
                End If
                If Val(WkMigliaia) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMigliaia) + "mila"
                End If
            Case Is = 4
                If Val(WkCentinaia) > 0 Then
                    WkStringa = WkStringa + NumTrd(WkCentinaia)
                End If
                If Val(WkCentinaia) = 0 Then
                    If WkStringa = "" Then WkStringa = "zero"
                End If
        End Select
    Next
    Lettere = WkStringa
End Function

Function cifranum(item) As String
    Dim cifra(27) As String
    cifra(1) = "uno"
    cifra(2) = "due"
    cifra(3) = "tre"
    cifra(4) = "quattro"
    cifra(5) = "cinque"
    cifra(6) = "sei"
    cifra(7) = "sette"
    cifra(8) = "otto"
    cifra(9) = "nove"
    cifra(10) = "dieci"
    cifra(11) = "undici"
    cifra(12) = "dodici"
    cifra(13) = "tredici"
    cifra(14) = "quattordici"
    cifra(15) = "quindici"
    cifra(16) = "sedici"
    cifra(17) = "diciassette"
    cifra(18) = "diciotto"
    cifra(19) = "diciannove"
    cifra(20) = "venti"
    cifra(21) = "trenta"
    cifra(22) = "quaranta"
    cifra(23) = "cinquanta"
    cifra(24) = "sessanta"
    cifra(25) = "settanta"
    cifra(26) = "ottanta"
    cifra(27) = "novanta"
    cifranum = cifra(item)
End Function

Function GetCifra(item) As String
    Dim CurrItem As String
    If item <= 20 Then
        CurrItem = cifranum(item)
    Else
        CurrItem = cifranum((item - 30) / 10 + 21)
    End If
    GetCifra = CurrItem
End Function

Function NumTrd(WkNum)
    Dim WkCif1, WkCif2, WkCif3 As Integer
    Dim WkCif As String
    WkNum = Space(3 - Len(WkNum)) + WkNum
    WkCif = ""
    WkCif1 = Val(Left(WkNum, 1))
    WkCif2 = Val(Mid$(WkNum, 2, 1))
    WkCif3 = Val(Mid$(WkNum, 3, 1))
    If WkCif1 = 1 Then
        WkCif = "cento"
    End If
    If WkCif1 > 1 Then
        WkCif = GetCifra(WkCif1) + "cento"
    End If
    If WkCif2 > 1 And (WkCif3 = 1 Or WkCif3 = 8) Then
        WkCif = WkCif + Left(GetCifra(WkCif2 * 10), Len(GetCifra(WkCif2 * 10)) - 1)
    ElseIf WkCif2 > 1 And WkCif3 > 1 Then
        WkCif = WkCif + GetCifra(WkCif2 * 10)
    ElseIf WkCif2 > 0 Then
        WkCif = WkCif + GetCifra(WkCif2 * 10 + WkCif3)
        WkCif3 = 0
    End If
    If WkCif3 > 0 Then
        WkCif = WkCif + GetCifra(WkCif3)
    End If
    NumTrd = WkCif
End Function


Private Sub Command1_Click()
    Text1.Text = Lettere(1234567)
End Sub
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 14:56   #7
Joblack84
Member
 
Iscritto dal: Apr 2006
Messaggi: 194
Quote:
Originariamente inviato da mynos79
Ecco, questo l' ho trovato in un altro progetto che avevo fatto tanto tempo fa ... ed è più ottimizzato e corto, ma non supporta i numeri decimali.

Codice:
Function Lettere(wknumero) As String
    Dim WkCentinaia, WkMigliaia, WkMilioni, WkMiliardi, WkStringa As String
    Dim pass As Byte
    wknumero = Str$(Int(wknumero))
    wknumero = Space(12 - Len(wknumero)) + wknumero
    WkMiliardi = Left$(wknumero, 3)
    WkMilioni = Mid$(wknumero, 4, 3)
    WkMigliaia = Mid$(wknumero, 7, 3)
    WkCentinaia = Mid$(wknumero, 10, 3)
    WkStringa = ""
    For pass = 1 To 4
        Select Case pass
            Case Is = 1
                If Val(WkMiliardi) = 1 Then
                    WkStringa = WkStringa + "unmiliardo"
                End If
                If Val(WkMiliardi) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMiliardi) + "miliardi"
                End If
            Case Is = 2
                If Val(WkMilioni) = 1 Then
                    WkStringa = WkStringa + "unmilione"
                End If
                If Val(WkMilioni) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMilioni) + "milioni"
                End If
            Case Is = 3
                If Val(WkMigliaia) = 1 Then
                    WkStringa = WkStringa + "mille"
                End If
                If Val(WkMigliaia) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMigliaia) + "mila"
                End If
            Case Is = 4
                If Val(WkCentinaia) > 0 Then
                    WkStringa = WkStringa + NumTrd(WkCentinaia)
                End If
                If Val(WkCentinaia) = 0 Then
                    If WkStringa = "" Then WkStringa = "zero"
                End If
        End Select
    Next
    Lettere = WkStringa
End Function

Function cifranum(item) As String
    Dim cifra(27) As String
    cifra(1) = "uno"
    cifra(2) = "due"
    cifra(3) = "tre"
    cifra(4) = "quattro"
    cifra(5) = "cinque"
    cifra(6) = "sei"
    cifra(7) = "sette"
    cifra(8) = "otto"
    cifra(9) = "nove"
    cifra(10) = "dieci"
    cifra(11) = "undici"
    cifra(12) = "dodici"
    cifra(13) = "tredici"
    cifra(14) = "quattordici"
    cifra(15) = "quindici"
    cifra(16) = "sedici"
    cifra(17) = "diciassette"
    cifra(18) = "diciotto"
    cifra(19) = "diciannove"
    cifra(20) = "venti"
    cifra(21) = "trenta"
    cifra(22) = "quaranta"
    cifra(23) = "cinquanta"
    cifra(24) = "sessanta"
    cifra(25) = "settanta"
    cifra(26) = "ottanta"
    cifra(27) = "novanta"
    cifranum = cifra(item)
End Function

Function GetCifra(item) As String
    Dim CurrItem As String
    If item <= 20 Then
        CurrItem = cifranum(item)
    Else
        CurrItem = cifranum((item - 30) / 10 + 21)
    End If
    GetCifra = CurrItem
End Function

Function NumTrd(WkNum)
    Dim WkCif1, WkCif2, WkCif3 As Integer
    Dim WkCif As String
    WkNum = Space(3 - Len(WkNum)) + WkNum
    WkCif = ""
    WkCif1 = Val(Left(WkNum, 1))
    WkCif2 = Val(Mid$(WkNum, 2, 1))
    WkCif3 = Val(Mid$(WkNum, 3, 1))
    If WkCif1 = 1 Then
        WkCif = "cento"
    End If
    If WkCif1 > 1 Then
        WkCif = GetCifra(WkCif1) + "cento"
    End If
    If WkCif2 > 1 And (WkCif3 = 1 Or WkCif3 = 8) Then
        WkCif = WkCif + Left(GetCifra(WkCif2 * 10), Len(GetCifra(WkCif2 * 10)) - 1)
    ElseIf WkCif2 > 1 And WkCif3 > 1 Then
        WkCif = WkCif + GetCifra(WkCif2 * 10)
    ElseIf WkCif2 > 0 Then
        WkCif = WkCif + GetCifra(WkCif2 * 10 + WkCif3)
        WkCif3 = 0
    End If
    If WkCif3 > 0 Then
        WkCif = WkCif + GetCifra(WkCif3)
    End If
    NumTrd = WkCif
End Function

Private Sub Command1_Click()
    Text1.Text = Lettere(1234567)
End Sub
grazie funziona abbastanza bene non funziona sol con le virgole ma è un problema che risolvero
Joblack84 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 14:58   #8
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Il codice lunghissimo del mio 1° post invece funzia anche con la virgola ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 15:00   #9
Joblack84
Member
 
Iscritto dal: Apr 2006
Messaggi: 194
Quote:
Originariamente inviato da mynos79
Il codice lunghissimo del mio 1° post invece funzia anche con la virgola ...
si maquello parte da 100 se scrivo 1 mi scive "cento" cmq forse sbaglio ad inserire il codice cmq grazie mille mi hai salvato da un paio di ore di stress
Joblack84 è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 15:06   #10
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Ops, è vero ... solo 1 mette cento, poi dal 2 in poi funziona bene ... non me ne ero mai accorto
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2006, 07:22   #11
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
interesserebbe anche a me questa cosa, ma sono un supernubbio, come faccio a provare il tuo programma? cioe dove metto il codice? grazie mille
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2006, 09:09   #12
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Beh, l' ultimo codice che ho postato:

Codice:
Function Lettere(wknumero) As String
    Dim WkCentinaia, WkMigliaia, WkMilioni, WkMiliardi, WkStringa As String
    Dim pass As Byte
    wknumero = Str$(Int(wknumero))
    wknumero = Space(12 - Len(wknumero)) + wknumero
    WkMiliardi = Left$(wknumero, 3)
    WkMilioni = Mid$(wknumero, 4, 3)
    WkMigliaia = Mid$(wknumero, 7, 3)
    WkCentinaia = Mid$(wknumero, 10, 3)
    WkStringa = ""
    For pass = 1 To 4
        Select Case pass
            Case Is = 1
                If Val(WkMiliardi) = 1 Then
                    WkStringa = WkStringa + "unmiliardo"
                End If
                If Val(WkMiliardi) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMiliardi) + "miliardi"
                End If
            Case Is = 2
                If Val(WkMilioni) = 1 Then
                    WkStringa = WkStringa + "unmilione"
                End If
                If Val(WkMilioni) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMilioni) + "milioni"
                End If
            Case Is = 3
                If Val(WkMigliaia) = 1 Then
                    WkStringa = WkStringa + "mille"
                End If
                If Val(WkMigliaia) > 1 Then
                    WkStringa = WkStringa + NumTrd(WkMigliaia) + "mila"
                End If
            Case Is = 4
                If Val(WkCentinaia) > 0 Then
                    WkStringa = WkStringa + NumTrd(WkCentinaia)
                End If
                If Val(WkCentinaia) = 0 Then
                    If WkStringa = "" Then WkStringa = "zero"
                End If
        End Select
    Next
    Lettere = WkStringa
End Function

Function cifranum(item) As String
    Dim cifra(27) As String
    cifra(1) = "uno"
    cifra(2) = "due"
    cifra(3) = "tre"
    cifra(4) = "quattro"
    cifra(5) = "cinque"
    cifra(6) = "sei"
    cifra(7) = "sette"
    cifra(8) = "otto"
    cifra(9) = "nove"
    cifra(10) = "dieci"
    cifra(11) = "undici"
    cifra(12) = "dodici"
    cifra(13) = "tredici"
    cifra(14) = "quattordici"
    cifra(15) = "quindici"
    cifra(16) = "sedici"
    cifra(17) = "diciassette"
    cifra(18) = "diciotto"
    cifra(19) = "diciannove"
    cifra(20) = "venti"
    cifra(21) = "trenta"
    cifra(22) = "quaranta"
    cifra(23) = "cinquanta"
    cifra(24) = "sessanta"
    cifra(25) = "settanta"
    cifra(26) = "ottanta"
    cifra(27) = "novanta"
    cifranum = cifra(item)
End Function

Function GetCifra(item) As String
    Dim CurrItem As String
    If item <= 20 Then
        CurrItem = cifranum(item)
    Else
        CurrItem = cifranum((item - 30) / 10 + 21)
    End If
    GetCifra = CurrItem
End Function

Function NumTrd(WkNum)
    Dim WkCif1, WkCif2, WkCif3 As Integer
    Dim WkCif As String
    WkNum = Space(3 - Len(WkNum)) + WkNum
    WkCif = ""
    WkCif1 = Val(Left(WkNum, 1))
    WkCif2 = Val(Mid$(WkNum, 2, 1))
    WkCif3 = Val(Mid$(WkNum, 3, 1))
    If WkCif1 = 1 Then
        WkCif = "cento"
    End If
    If WkCif1 > 1 Then
        WkCif = GetCifra(WkCif1) + "cento"
    End If
    If WkCif2 > 1 And (WkCif3 = 1 Or WkCif3 = 8) Then
        WkCif = WkCif + Left(GetCifra(WkCif2 * 10), Len(GetCifra(WkCif2 * 10)) - 1)
    ElseIf WkCif2 > 1 And WkCif3 > 1 Then
        WkCif = WkCif + GetCifra(WkCif2 * 10)
    ElseIf WkCif2 > 0 Then
        WkCif = WkCif + GetCifra(WkCif2 * 10 + WkCif3)
        WkCif3 = 0
    End If
    If WkCif3 > 0 Then
        WkCif = WkCif + GetCifra(WkCif3)
    End If
    NumTrd = WkCif
End Function

Private Sub Command1_Click()
    Text1.Text = Lettere(1234567)
End Sub
basta che lo copi interamente nel codice di un form; preoccupati di inserire nel form anche una textbox di nome Text1 e un pulsante di nome Command1 ... semplicemente per trasformare un numero in una stringa basta usare la funzione Lettere(numero) che restituisce appunto una stringa ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2006, 21:43   #13
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
scusami, cose un form?
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 22-06-2006, 21:49   #14
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415

Cos'è un form?

Spero tu mi stia prendendo in giro ... o forse no ...

Comunque un form è la maschera del programma, la finestra del programma ...
Quando crei un nuovo progetto in VB ti ritrovi il form vuoto davanti (con solamente l'icona, il titolo standard ed i pulsantini di riduzione e massimizzazione).
Fa doppio click sopra e passi nella pagina in cui puoi inserire il codice relativo al form ... cancella le scritte preesistenti (Private Sub Form_Load ....) ed incolla il codice.
Ora torna alla visualizzazione grafica e disegnaci un pulsante ed una textbox ...

L' ultima riga di codice è quella da modificare:
Text1.Text = Lettere(1234567)

Se ad esempio vuoi inserire tu da programma il valore in una seconda textbox, basta che disegni una seconda textbox (lasci i nomi standard, ovvero Text2) e cambi quella riga con questa:
Text1.Text = Lettere(val(Text2.Text))
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino

Ultima modifica di mynos79 : 22-06-2006 alle 21:55.
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 01:10   #15
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
pultroppo nn ti sto prendendo in giro

ora devo capire cos'e un VB, ma cerco con google, grazie mille per la disponibilita
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 01:12   #16
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
visual basic, ottimo, ma dove trovo una console di visual basic? mi ricordo che sui vecchi 386-486 bastava scrivere da dos visual basic ma su questi nuovi pc con windows xp nn succede nulla mi sembra
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 09:44   #17
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Quote:
Originariamente inviato da Dr.Speed
visual basic, ottimo, ma dove trovo una console di visual basic? mi ricordo che sui vecchi 386-486 bastava scrivere da dos visual basic ma su questi nuovi pc con windows xp nn succede nulla mi sembra
Che dici ... lo installiamo sto Visual Basic prima di usarlo?
Comunque anche in dos non c'era preinstallato il Visual Basic, ma solamente il Basic o GwBasic ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 10:23   #18
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da mynos79
ma solamente il Basic o GwBasic ...
C'era il QBasic
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 10:30   #19
mynos79
Senior Member
 
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
Quote:
Originariamente inviato da andbin
C'era il QBasic
Eh eh hai ragione che bei tempi quando ero piccolino
Il GwBasic era una versione leggermente diversa dell' Ibm o Olivetti, non ricordo.
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 15:53   #20
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
si si mi ricordo anchio il QBasic
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Il nuovo OnePlus Nord 6 è vicino al debu...
Tesla svela i risultati del Q4: conferma...
Nuova rimodulazione da Fastweb: fino a 3...
La NVIDIA RTX 5090 potrebbe presto costa...
ASUS non produrrà più smar...
CoopVoce sta per lanciare il 5G: ecco qu...
Factorial, azienda di batterie allo stat...
Le specifiche fuori di testa della Yangw...
I numeri incredibili di Xiaomi: nel 2025...
In Cina è pronto il parco fotovol...
Neuralink accelera: produzione di massa ...
Starlink abbassa l'orbita di migliaia di...
Dal MIT una nuova batteria per auto elet...
Adam Mosseri parla di IA su Instagram: l...
Suonerie personalizzate e Tone Store: il...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v