Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    VB.net Errore impossibile..

    Salve a tutti. Ho un problema che non mi dà tregua: ho 2 pc con installato visual studio.NET. In un pc lo script che posto funziona correttamente, nell'altro (un portatile) mi dà questo errore:

    "An unhandled exception of type 'System.ArgumentException' occurred in microsoft.visualbasic.dll
    Additional information: Le informazioni sul separatore di valuta specificate in NumberFormatInfo e necessarie per l'analisi non sono univoche."

    Come è possibile che in un pc funzioni e nell'altro no? Le versioni del software sono identiche.
    Grazie a tutti.


    Private Sub TextBox78_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox78.TextChanged
    Dim d80 As Double
    Dim d78 As Double

    Dim d79 As Double
    Dim str79 As String

    str79 = ""

    If TextBox80.Text.Length > 0 And TextBox78.Text.Length > 0 Then
    d80 = CDbl(TextBox80.Text)
    d78 = CDbl(TextBox78.Text)

    d79 = 2 * d80 + d78 + 1
    str79 = d79.ToString("N")
    End If

    TextBox79.Text = str79
    End Sub
    Mister X

  2. #2
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    Domande:
    anche i sistemi oparativi sono uguali?
    Installati con gli stessi componenti?

    Office? Che versioni hai installato sui 2 pc?

    Ciao
    Andrea

  3. #3
    la worstation ha installato win 2000 professional con office 2003. la versione del VB.net è la 2003 version 7.1.3088, nel portatile c'è win XP professional, office 2000 e medesima versione di VB.net.

    Grazie dell'aiuto
    Mister X

  4. #4
    Additional information: Le informazioni sul separatore di valuta specificate in NumberFormatInfo e necessarie per l'analisi non sono univoche."
    Sai, mi puzza tanto questo errore.In che lingua li hai i sistemi operativi?
    Intanto esegui la sub mettendo un break point e vai avanti step by step, penso si fermerà sul CDbl.
    Mi pare che non riesca ad identificare il separatore dei decimali...
    Ciao
    Forni Massimo
    www.warpsoft.it

  5. #5
    Esatto: si arresta quando arriva alla stringa
    "d80 = CDbl(TextBox80.Text)"

    I due sistemi operativi sono in italiano, VB.net nel portatile (dove esiste l'errore) è in inglese.

    Grazie.
    Mister X

  6. #6
    CVD !
    Sei tu che sbagli Nel portatile invece di scrivere i numeri e separare i decimali con il punto separali con la virgola...Prova...
    Ciao
    Forni Massimo
    www.warpsoft.it

  7. #7
    no, non funziona. Si arresta non appena inserisco un valore numerico con virgola o senza.. non faccio nemmeno in tempo a scrivere la virgola che già si arresta..


    Grazie ancora
    Mister X

  8. #8
    Allora l'unica cosa che mi viene in mente è questa:
    1)O imposti a mano il NumberFormatInfo (cerchi sul msdn come fare);
    2) Fai una cosa migliore, prendi la stringa dalla proprietà text,se trovi una virgola o un punto separi i numeri prima e quelli dopo e poi costruisci un double.
    Se ho 5 min te lo faccio io un esempio...
    Ciao
    Forni Massimo
    www.warpsoft.it

  9. #9
    codice:
        'Il nostro numero dalla conversione della TextBox
        Private myNumber As Double
    
        Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    
            Dim myStringNum As String() = TextBox1.Text.Split(New Char() {"."c, ","c})
    
            Try
                If myStringNum.Length = 0 Then
                    myNumber = 0
                ElseIf myStringNum.Length = 1 OrElse myStringNum(1).Length = 0 Then
                    myNumber = CInt(myStringNum(0))
                Else
                    myNumber = CInt(myStringNum(0))
                    myNumber += CInt(myStringNum(1)) / (10 ^ myStringNum(1).Length)
                End If
    
            Catch ex As InvalidCastException
                'Se siamo quì vuol dire che nella text o ci sono caratteri non numerici oppure è vuota
                myNumber = 0
    
            End Try
    
        End Sub
    Ecco quà, funziona sia che usi la virgola od il punto come separatore,L'ho fatto in 5 min, dunque nn sperare che non abbia bug
    Il catch particolare serve per intercettare quando CInt non riesce ad effettuare la conversione(es CInt("text") o anche CInt(""))
    Ciao
    Forni Massimo
    www.warpsoft.it

  10. #10
    grazie, adesso provo.
    Mister X

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.