Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-06-2006, 13: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, 13:19   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 13: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, 13:34   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2006, 13: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, 13: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, 13: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, 13: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, 14: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, 14: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, 06: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, 08: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, 20: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, 20: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 20:55.
mynos79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 00: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, 00: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, 08: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, 09:23   #18
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da mynos79
ma solamente il Basic o GwBasic ...
C'era il QBasic
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 23-06-2006, 09: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, 14: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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
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: 14:57.


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