Discussione chiusa
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Conversione numero DA lettere A cifre

  1. #1
    John Hawk non è in linea Scolaretto
    Buongiorno a tutti.

    E' da poco iniziata la scuola e già iniziano i problemi per alunni e professori Spiego meglio ciò che intendo:

    un mio amico, prof. di informatica di un I.T.C. (laureato in giurisprudenza, ma che a causa dei tagli alla scuola deve insegnare informatica per lavorare), ha ben pensato di assegnare come esercitazione estiva ai suoi ex-ragazzi del terzo anno l'elaborazione di un algoritmo che trasformasse un numero in cifre nel suo equivalente in lettere. Inoltre, i ragazzi, per verificare che la conversione fosse stata fatta correttamente, dovevano sviluppare un altro algoritmo che facesse l'opposto, cioè passatogli il risultato della prima funzione, elaborare il numero da lettere in cifre. Se la seconda funzione restituiva il numero passato come argomento della prima funzione, vuol dire che entrambi gli algoritmi funzionano.

    Ieri però, quando il mio amico ha avuto lezione nell'attuale quarta classe, i ragazzi gli han detto di non essere riusciti nel compito assegnatoli, in quanto troppo complicato. Al posto suo, io avrei lasciato correre, ma siccome lui è molto pignolo (sarà forse perchè è un prof. ? ), ha detto loro che nell'arco della settimana gli avrebbe mostrato la soluzione, accusandoli di essere negligenti e quant'altro... Fosse solo per il fatto che nella rabbia del momento, abbia sottovalutato il problema. E così ha chiesto aiuto a me.

    Io ho accettato dicendogli che avrei provato a dargli una mano, ed ho già elaborato l'algoritmo per la conversione di un numero DA cifre A lettere, ma adesso mi sono bloccato nel procedimento opposto.

    In un primo momento ho pensato di sostituire a parole note nella stringa sNumero l'equivalente espressione matematica. Faccio un esempio:
        sNumero = "centoventisei" 'argomento di partenza
        
        sNumero = Replace(sNumero, "cento", "+1*100") 
        Debug.Print sNumero 'quindi sNumero = "+1*100ventisei"
    
        sNumero = Replace(sNumero, "venti", "+2*10") 'quindi sNumero = "+1*100+2*10sei"
        Debug.Print sNumero 'quindi sNumero = "+1*100+2*10sei"    
    
        sNumero = Replace(sNumero, "sei","+6") 
        Debug.Print sNumero 'quindi sNumero = "+1*100+2*10+6"
        
        Dim scScript As New ScriptControl
        scScript.Language = "VBScript"
        Debug.Print scScript.Eval(sNumbero) 'quindi 126
    
    Naturalmente è molto semplicistica come funzione, in cui ho noto già a priori ciò che andrò a sostituire.

    Il punto è che estendendo questo ragionamento di sostituzione (così come nell'esempio) ad una routine più complessa, che ricerca e sostituisce le occorrenze delle parole con l'equivalente espressione matematica, non sempre ottengo il giusto risultato, soprattutto quando il parametro sNumero contiene la stringa di un numero abbastanza complesso...

    Ma a parte questo approccio al problema, non ho idea in che altro modo si possa risolvere, e neanche la ricerca su Google ha fornito risultati attendibili (ho visto alcuni links dove gli stessi autori affermano che i loro algoritmi non sempre sono affidabili, senza considerare poi che sono scritti in VBA e non VB6, ma questo è il minore dei mali...).

    C'è qualcuno che sappia aiutarmi nella conversione DA lettere A cifre di un numero?

    Grazie molte,
    John

  2. #2
    Prendendo spunto da quello che avevi già fatto e senza badare alla velocità e tantopiu alla memoria aggiungendo il tempo di progettazione pari a 10' mi è venuto fuori questo........

    Option Explicit
    
    Private Function ItalianNumberToNumber(ByVal strn As String) As Long
        Dim wn() As String
        Dim pattern As String
        Dim i As Long
        
        Const WDC As String = ",,,,,,,,,"
        Const WCC As String = WDC & "," & WDC & "," & WDC & "," & WDC & "," & WDC & "," & WDC & "," & WDC & "," & WDC & "," & WDC & "," & WDC
        Const CENTINAIA_START As Long = 100
        Const CENTINAIA_END As Long = 300
        Const DECINE_START As Long = 20
        Const DECINE_END As Long = 90
        Const UNITA_START As Long = 0
        Const UNITA_END As Long = 19
        
        'dizionario'
        pattern = "zero,uno,due,tre,quattro,cinque,sei,sette,otto,nove,dieci,"
        pattern = pattern & "undici,dodici,tredici,quattordici,quindici,sedici,diciassette,diciotto,diciannove,venti,"
        pattern = pattern & WDC & "trenta," & WDC & "quaranta," & WDC & "cinquanta," & WDC & "sesanta,"
        pattern = pattern & WDC & "settanta," & WDC & "ottanta," & WDC & "novanta,"
        pattern = pattern & WDC & "cento," & WCC & "duecento," & WCC & "trecento"
        
        wn = Split(pattern, ",")
        
        'Bruteforce'
        For i = CENTINAIA_START To CENTINAIA_END Step 100
            If InStr(1, strn, wn(i)) > 0 Then
                strn = Replace(strn, wn(i), "")
                ItalianNumberToNumber = i
                Exit For
            End If
        Next
        
        If Len(strn) = 0 Then Exit Function
            
        For i = DECINE_START To DECINE_END Step 10
            If InStr(1, strn, wn(i)) > 0 Then
                strn = Replace(strn, wn(i), "")
                ItalianNumberToNumber = ItalianNumberToNumber + i
                Exit For
            End If
        Next
        
        If Len(strn) = 0 Then Exit Function
            
        For i = UNITA_START To UNITA_END
            If InStr(1, strn, wn(i)) > 0 Then
                strn = Replace(strn, wn(i), "")
                ItalianNumberToNumber = ItalianNumberToNumber + i
                Exit For
            End If
        Next
        
    End Function
    
    
    Private Sub Form_Load()
        MsgBox ItalianNumberToNumber("centoventisei")
        MsgBox ItalianNumberToNumber("centododici")
        MsgBox ItalianNumberToNumber("trentatre trentini giunsero a trento tutti e trentatre trotterellando")
    End Sub
    
    l'esempio arriva fino a 399 ma penso che il concetto sia chiaro...

    P.S. non è che mi sia interessato molto leggere tutta la motivazione...
    ℹ️ Leggi di più su vbExtreme ...

  3. #3
    John Hawk non è in linea Scolaretto
    Grazie per l'intervento vbExtreme, anche se non ho ben capito a che servono le costanti WDC e WCC e come costruisci il dizionario. Per il resto, sembra chiaro...

    Prima che mi rispondessi tu, avevo iniziato un ragionamento alternativo, e appena finisco di stilare una bozza di algoritmo, lo posterò per vedere se può essere ottimizzato...

    John,
    Ultima modifica di John Hawk; 19-09-2012 13:28 

  4. #4
    Utilizzo lo split per assegnare il valore all'array quindi pattern conterrà il valore da splittare dentro all'array.
    Dato che per pura semplicità ho assegnato wn(0)="zero" wn(30)="trenta"... per allineare lo split vanno necessariamente inserite opportune virgole ovvero:

    30,,,,,,,,,,40

    Per semplificare il compito ho creato wdc che allinea le decine e wcc che allinea le centinaia.
    Spero di essermi chiarito.
    ℹ️ Leggi di più su vbExtreme ...

  5. #5
    John Hawk non è in linea Scolaretto
    Allora, voglio dire due cose:

    1. grazie per il tempo dedicatomi, vbExtreme, e per l'esempio fornitomi con le delucidazioni del caso.

    2. Sono riuscito nell'elaborazione di un algoritmo tutto mio che funziona (almeno per ora) alla perfezione e che penso sia meno 'incasinato' della soluzione proposta da te, caro vbExtreme, soluzione che, comunque sia, resta validissima

    Grazie ancora,
    John

  6. #6
    postalo allora.....
    magari diventa utile anche a qualcuno....

    se vuoi qualcosa ancora di piu incasinato,con meno spreco di memoria e una velocità di almeno 8 volte superiore rispetto al precedente:

    Private Function dct_inton(ByVal itan As String) As Long
        Dim p As Long, i As Long, s As String
        Dim dct() As String
        Dim dctv() As Long
        
        Const pattern As String = "zero,uno,due,tre,quattro,cinque,sei,sette,otto,nove,dieci,undici,dodici,tredici,quattordici,quindici,sedici,diciassette,diciotto,diciannove,ventuno,trentuno,quarantuno,cinquantuno,sessantuno,settantuno,ottantuno,novantuno,venti,trenta,quaranta,cinquanta,sessanta,settanta,ottanta,novanta"
        Const W_CENTO As String = "cento"
        Const DCT_UNIT As Long = 9
        Const DEC_UNIVOC_ST As Long = 10
        Const DEC_UNIVOC_EN As Long = 27
        Const DEC_ST As Long = 28
        Const DEC_EN As Long = 35
        
        'dizionario
        dct() = Split(pattern, ",")
        
        ReDim dctv(UBound(dct)) As Long
        
        For i = 10 To 19
            dctv(i) = i
        Next
        
        dctv(20) = 21
        For i = 21 To DEC_UNIVOC_EN
            dctv(i) = dctv(i - 1) + 10
        Next
        
        dctv(DEC_ST) = 20
        For i = DEC_ST + 1 To DEC_EN
            dctv(i) = dctv(i - 1) + 10
        Next
        
        'ho le centinaia?
        p = InStr(1, itan, W_CENTO)
        If p > 0 Then
            If p = 1 Then
                dct_inton = 100
            Else
                s = Left(itan, p - 1)
                For i = 2 To DCT_UNIT
                    If s = dct(i) Then
                        dct_inton = 100 * i
                        Exit For
                    End If
                Next
            End If
            
            itan = Right(itan, Len(itan) - ((p - 1) + Len(W_CENTO)))
            If Len(itan) = 0 Then Exit Function
        End If
        
        'controllo le decina univoche
        For i = DEC_UNIVOC_ST To DEC_UNIVOC_EN
            If itan = dct(i) Then
                dct_inton = dct_inton + dctv(i)
                Exit Function
            End If
        Next
        
        'controllo la decina
        For i = DEC_ST To DEC_EN
            p = InStr(1, itan, dct(i))
            If p > 0 Then
                dct_inton = dct_inton + dctv(i)
                itan = Right(itan, Len(itan) - Len(dct(i)))
                Exit For
            End If
        Next
        
        'controllo unita
        For i = 2 To DCT_UNIT
            If itan = dct(i) Then
                dct_inton = dct_inton + i
                Exit Function
            End If
        Next
        
        If Len(itan) > 0 Then dct_inton = dct_inton + 1
    End Function
    
    con un'altro po di lavoro si riesce a risparmiare ancora memoria e a velocizzare ancora considerevolmente il lavoro...

    Sono curioso però di vedere il tuo codice.
    Ultima modifica di vbExtreme; 19-09-2012 17:17  Motivo: mi sono scordato dell'uno eheheheh
    ℹ️ Leggi di più su vbExtreme ...

  7. #7
    ops mi sono dimenticato anche di aggiungere il controllo sullo zero,vabbhè posto anche una miglioria prestazionale che porta alla velocità di 5 volte superiore rispetto al precedente e 13 volte rispetto al primo...basta mi fermo qui penso sia piu che sufficente

    Private Function dct_inton(ByVal itan As String) As Long
        Dim p As Long, i As Long, s As String
        Dim dct(35) As String
        Dim dctv(35) As Long
        
        Const W_CENTO As String = "cento"
        Const DCT_UNIT As Long = 9
        Const DEC_UNIVOC_ST As Long = 10
        Const DEC_UNIVOC_EN As Long = 27
        Const DEC_ST As Long = 28
        Const DEC_EN As Long = 35
        
        'dizionario
        dct(0) = "zero": dct(1) = "uno": dct(2) = "due": dct(3) = "tre": dct(4) = "quattro"
        dct(5) = "cinque": dct(6) = "sei": dct(7) = "sette": dct(8) = "otto": dct(9) = "nove"
        dct(10) = "dieci": dct(11) = "undici": dct(12) = "dodici": dct(13) = "tredici"
        dct(14) = "quattordici": dct(15) = "quindici": dct(16) = "sedici": dct(17) = "diciassette"
        dct(18) = "diciotto": dct(19) = "diciannove": dct(20) = "ventuno": dct(21) = "trentuno"
        dct(22) = "quarantuno": dct(23) = "cinquantuno": dct(24) = "sessantuno": dct(25) = "settantuno"
        dct(26) = "ottantuno": dct(27) = "novantuno": dct(28) = "venti": dct(29) = "trenta"
        dct(30) = "quaranta": dct(31) = "cinquanta": dct(32) = "sessanta": dct(33) = "settanta"
        dct(34) = "ottanta": dct(35) = "novanta"
        
        For i = 10 To 19
            dctv(i) = i
        Next
        
        dctv(20) = 21
        For i = 21 To DEC_UNIVOC_EN
            dctv(i) = dctv(i - 1) + 10
        Next
        
        dctv(DEC_ST) = 20
        For i = DEC_ST + 1 To DEC_EN
            dctv(i) = dctv(i - 1) + 10
        Next
        
        If itan = dct(0) Then Exit Function
        
        'ho le centinaia?
        p = InStr(1, itan, W_CENTO)
        If p > 0 Then
            If p = 1 Then
                dct_inton = 100
            Else
                s = Left(itan, p - 1)
                For i = 2 To DCT_UNIT
                    If s = dct(i) Then
                        dct_inton = 100 * i
                        Exit For
                    End If
                Next
            End If
            
            itan = Right(itan, Len(itan) - ((p - 1) + Len(W_CENTO)))
            If Len(itan) = 0 Then Exit Function
        End If
        
        'controllo le decina univoche
        For i = DEC_UNIVOC_ST To DEC_UNIVOC_EN
            If itan = dct(i) Then
                dct_inton = dct_inton + dctv(i)
                Exit Function
            End If
        Next
        
        'controllo la decina
        For i = DEC_ST To DEC_EN
            p = InStr(1, itan, dct(i))
            If p > 0 Then
                dct_inton = dct_inton + dctv(i)
                itan = Right(itan, Len(itan) - Len(dct(i)))
                Exit For
            End If
        Next
        
        'controllo unita
        For i = 2 To DCT_UNIT
            If itan = dct(i) Then
                dct_inton = dct_inton + i
                Exit Function
            End If
        Next
        
        If Len(itan) > 0 Then dct_inton = dct_inton + 1
    End Function
    
    ℹ️ Leggi di più su vbExtreme ...

  8. #8
    John Hawk non è in linea Scolaretto
    Allora, è questo qui:
    Private Function Str2Val(ByVal Value As String) As Currency
        Dim i As Integer, j As Integer
        
        Value = UCase(Value)
        For i = 1 To Len(Value)
            If Not Mid(Value, i, 1) Like "[AC-EI-OQ-V]" Then
                Error 5 'Invalid argument
            End If
        Next i
        Value = LCase(Value)
        
        Dim vPattern As Variant, sItem As String
        Dim sExpr As String, scScript As Object
        
        Set scScript = CreateObject("MSScriptControl.ScriptControl")
        scScript.Language = "VBScript"
        
        vPattern = Array("miliard", "milion", "mil", vbNullString)
        For i = LBound(vPattern) To UBound(vPattern)
            sItem = vPattern(i)
            If sItem = vbNullString Then
                sExpr = Value
                GoTo Group1
            End If
            If InStr(1, Value, sItem) <> 0 Then
                sExpr = "(" & Left(Value, InStr(1, Value, sItem) - 1)
                Value = Mid(Value, InStr(1, Value, sItem) + Len(sItem) + 1, Len(Value))
                
    Group1:
                sExpr = Replace(sExpr, "cento", "1*10^2")
                For j = 1 To 9
                    sExpr = Replace(sExpr, Choose(j, "dieci", _
                                                     "vent", _
                                                     "trent", _
                                                     "quarant", _
                                                     "cinquant", _
                                                     "sessant", _
                                                     "settant", _
                                                     "ottant", _
                                                     "novant"), _
                                           "+" & j & "*10")
                Next j
                For j = 1 To 9
                    sExpr = Replace(sExpr, Choose(j, "undici", _
                                                     "dodici", _
                                                     "tredici", _
                                                     "quattordici", _
                                                     "quindici", _
                                                     "sedici", _
                                                     "diciassette", _
                                                     "diciotto", _
                                                     "diciannove"), _
                                           "+" & j & "+10")
                Next j
                For j = 1 To 9
                    sExpr = Replace(sExpr, Choose(j, "un", _
                                                     "due", _
                                                     "tre", _
                                                     "quattro", _
                                                     "cinque", _
                                                     "sei", _
                                                     "sette", _
                                                     "otto", _
                                                     "nove"), _
                                           "+" & j & "*")
                Next j
                For j = 1 To Len(sExpr)
                    If Not Mid(sExpr, j, 1) Like "[*+(0-9)^]" Then
                        sExpr = Replace(sExpr, Mid(sExpr, j, 1), vbNullString)
                    End If
                Next j
                
                If Right(sExpr, 1) = "*" Then sExpr = Left(sExpr, Len(sExpr) - 1)
                
                Select Case i
                    Case LBound(vPattern):
                        sExpr = sExpr & ")*10^9"
                    Case (LBound(vPattern) + 1):
                        sExpr = sExpr & ")*10^6"
                    Case (LBound(vPattern) + 2):
                        sExpr = sExpr & ")*10^3"
                End Select
                
                Str2Val = Str2Val + scScript.eval(sExpr)
            End If
        Next i
        
        If Str2Val = 0 Then Error 13 'Type mismatch
        
    End Function
    
    Però sono stato troppo precipitoso, infatti, continuando a fare delle prove, mi sono accorto che alcune volte non interpreta corretamente alcuni valori (ad es. mille). Se ti va di darmi una mano a capire dove c'è un bug nel procedimento, te ne sarei grato.

    PS: Se non ti è chiaro qualche spezzone di codice, o te lo spiego e lo commento. Basta che lo chiedi.
    Ultima modifica di John Hawk; 19-09-2012 17:43 

  9. #9
    Allora partiamo dalla considerazione piu banale,il tuo codice risulta 324 volte piu lento del mio e anche se questa non è una gara ti dovrebbe far capire di essere sulla strada sbagliata!

    Parli poi di codice in confusione ma lo hai visto il tuo????Scusa se non ti aiuto nel tuo codice ma il mio onore mi impedisce di mettere mano ad un codice che comprende il GOTO 2012 e ancora appare il GOTO !!!
    Questo è il secondo segnale di una cattiva programmazione poco studiata e poco strutturata!
    ℹ️ Leggi di più su vbExtreme ...

  10. #10
    John Hawk non è in linea Scolaretto
    A parte il fatto che il tuo codice non funziona (parlo dell'ultimo che hai postato): ho inserito Debug.Print dct_inton("centounomilacinquecentosei") e mi ritorna '101' , vorrei lo stesso risponderti:

    Allora partiamo dalla considerazione piu banale,il tuo codice risulta 324 volte piu lento del mio e anche se questa non è una gara ti dovrebbe far capire di essere sulla strada sbagliata!
    E' la prima release, tra l'altro neanche funzionante (quella funzionante la posterò qui sotto), e so che ci sarebbe da ottimizzare il codice. Inoltre, uso l'elevamento a potenza (tipo 10^9 per indicare i miliardi) e avevo letto da qualche parte che quest'operazione rallenta notevolmente l'esecuzione del codice, per cui è sconsigliabile usarla, però visto:
    1. lo scopo didattico a cui serve;
    2. il pubblico a cui si rivolge questo codice (ragazzini di 16-17 anni, alle prime armi con la programmazione);
    3. non stiamo facendo una gara;
    penso di poter dire con certezza che sia una soluzione più che valida alla problematica.

    Parli poi di codice in confusione ma lo hai visto il tuo????
    Sembra confuso a causa delle chiamate di funzioni all'interno di altre funzioni. Ma a questo si può rimediare assegnado il risultato della funzione 'annidata' ad una variabile da passare poi come argomento alla funzionzione principale tale variabile.

    Scusa se non ti aiuto nel tuo codice ma il mio onore mi impedisce di mettere mano ad un codice che comprende il GOTO 2012 e ancora appare il GOTO !!! Questo è il secondo segnale di una cattiva programmazione poco studiata e poco strutturata!
    Fammi capire: che ti ha fatto di male l'istruzione GoTo???
    E comunque sia, si può evitare l'uso del GoTo inserendo il codice sottostante in una nuova routine. Però non mi andava di farlo, tutto qui.

    Ti sei fermato alle apparenze, senza capire il ragionamento che sta alla base... Comunque sia, spero finalmente di aver risolto così (NB: nella release finale ci sono ben DUE GoTo ):
    Option Explicit
    
    Private Function Str2Val(ByVal Value As String) As Currency
        Dim i As Integer, j As Integer
        
        Value = UCase(Value)
        For i = 1 To Len(Value)
            If Not Mid(Value, i, 1) Like "[AC-EI-OQ-V]" Then
                Error 5 'Invalid argument
            End If
        Next i
        Value = LCase(Value)
        
        If Value = "mille" Then
            Str2Val = 1000
            Exit Function
        End If
        
        Dim vPattern As Variant, sItem As String
        Dim sExpr As String, sPwr As String
        Dim scScript As Object
        
        Set scScript = CreateObject("MSScriptControl.ScriptControl")
        scScript.Language = "VBScript"
        
        vPattern = Array("miliard", "milion", "mil", vbNullString)
        For i = LBound(vPattern) To UBound(vPattern)
            sItem = vPattern(i)
            If sItem = vbNullString Then
                sExpr = Value
                GoTo Group1
            End If
            If InStr(1, Value, sItem) <> 0 Then
                sExpr = Left(Value, InStr(1, Value, sItem) - 1)
                If sExpr = vbNullString Then
                    GoTo Jump
                End If
                Value = Mid(Value, InStr(1, Value, sItem) + Len(sItem) + 1, Len(Value))
                
    Group1:
                sExpr = Replace(sExpr, "cento", "1*10^2")
                For j = 1 To 9
                    sExpr = Replace(sExpr, Choose(j, "dieci", _
                                                     "vent", _
                                                     "trent", _
                                                     "quarant", _
                                                     "cinquant", _
                                                     "sessant", _
                                                     "settant", _
                                                     "ottant", _
                                                     "novant"), _
                                           "+" & j & "*10")
                Next j
                For j = 1 To 9
                    sExpr = Replace(sExpr, Choose(j, "undici", _
                                                     "dodici", _
                                                     "tredici", _
                                                     "quattordici", _
                                                     "quindici", _
                                                     "sedici", _
                                                     "diciassette", _
                                                     "diciotto", _
                                                     "diciannove"), _
                                           "+" & j & "+10")
                Next j
                For j = 1 To 9
                    sExpr = Replace(sExpr, Choose(j, "un", _
                                                     "due", _
                                                     "tre", _
                                                     "quattro", _
                                                     "cinque", _
                                                     "sei", _
                                                     "sette", _
                                                     "otto", _
                                                     "nove"), _
                                           "+" & j & "*")
                Next j
                For j = 1 To Len(sExpr)
                    If Not Mid(sExpr, j, 1) Like "[*+(0-9)^]" Then
                        sExpr = Replace(sExpr, Mid(sExpr, j, 1), vbNullString)
                    End If
                Next j
                
                If Right(sExpr, 1) = "*" Then sExpr = Left(sExpr, Len(sExpr) - 1)
    Jump:
                Select Case i
                    Case LBound(vPattern):
                        sPwr = "*10^9"
                    Case (LBound(vPattern) + 1):
                        sPwr = "*10^6"
                    Case (LBound(vPattern) + 2):
                        sPwr = "*10^3"
                    Case UBound(vPattern):
                        sPwr = vbNullString
                End Select
                
                If sExpr = vbNullString Then
                    sExpr = sPwr
                Else
                    sExpr = "(" & sExpr & ")" & sPwr
                End If
                
                Str2Val = Str2Val + scScript.eval(sExpr)
            End If
        Next i
        
        If Str2Val = 0 Then Error 13 'Type mismatch
        
    End Function
    
    
    
    Private Sub Form_Load()
        '
        Const Number = "duemiladodici"
        Debug.Print Number, Str2Val(Number)
        End
        '
    End Sub
    
    Spero sia utile a qualcuno.

    John

    PS: Anche il tuo codice andrebbe più lentamente se dovesse controllare la bontà della stringa passatagli (tipo che non contenga caratteri strani, lettere (tipo la 'z') che non vengono assolutamente menzionate in alcun numero, valori numerici, ecc...), e ancora, a rallentarne l'esecuzione, credo che sia il metodo Eval dell'oggetto ScriptControl ...

Discussione chiusa
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Conversione cifre di un numero in lettere
    Da Roby1954 nel forum Microsoft Access
    Risposte: 14
    Ultimo Post: 21-12-2020, 08:15
  2. Conversione numeri in lettere
    Da BigDreamer nel forum Microsoft Excel
    Risposte: 4
    Ultimo Post: 10-03-2014, 01:30
  3. Trasformare valori numerici da lettere a cifre
    Da dosso89 nel forum Visual Basic 6
    Risposte: 14
    Ultimo Post: 02-11-2007, 13:36
  4. Come scarto le cifre di un numero?
    Da iltexano nel forum Microsoft Word
    Risposte: 4
    Ultimo Post: 20-09-2007, 17:54
  5. [VB6] Determinare il numero di cifre di un numero
    Da BrandonHeat nel forum Visual Basic 6
    Risposte: 18
    Ultimo Post: 04-04-2007, 15:30