Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
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
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, 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
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, 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
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, 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


Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
A 10 anni dalla prima rilevazione delle ...
Samsung annuncia il rilascio della One U...
La nuova MG4 spopola: già 26.000 ...
Monopattini pericolosi? Secondo una rice...
La Commissione Europea respinge le richi...
The Witcher: ecco le prime immagini dell...
Mitsubishi Electric verso l'acquisizione...
Pasticcio Tesla: nessuno vuole il Cybert...
Qualcomm, il nuovo SoC top di gamma &egr...
La memoria che cambierà l'AI: il ...
AI Overviews, un editore statunitense po...
AMD promette 1000 FPS con i Ryzen 9000X3...
L'IA italiana di Aton punta alla Silicon...
Amazon taglia i prezzi: upgrade da gamer...
Aruba Cloud semplifica e potenzia l'offe...
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: 18:51.


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