Vb.net Convert.ToInt32 (petit problème)

[Résolu]
Signaler
Messages postés
23
Date d'inscription
jeudi 7 octobre 2010
Statut
Membre
Dernière intervention
20 juillet 2012
-
Messages postés
23
Date d'inscription
jeudi 7 octobre 2010
Statut
Membre
Dernière intervention
20 juillet 2012
-
Bonjour tout le monde. J'ai un petit soucis avec la function Convert.ToInt32

Je dois vérifier si le mot que l'usager entrera contient au moins une majuscule. Cette partie je l'ai fais en un rien de temps
mais la je dois vérifier si l'usager entre un chiffre entre 0 et 9 dans le mot.

Voici la partie de mon code qui gere les majuscule et les nombre

    Private Sub btnAddItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddItem.Click
        addItemToList()
    End Sub
    Sub addItemToList() 'sub qui gère l'ajoue des items a la list box de gauche

        'Déclaration de mes variable
        Dim itemName As String
        Dim asDouble As Boolean
        Dim asUPPER As Boolean
        Dim asNbr As Boolean
        Dim newItemArray() As String


        itemName = CStr(txtItemName.Text)

        asDouble = checkDouble(itemName) 'Va faire a function qui regarde pour les doublons du listbox
        asUPPER = checkUPPER(itemName) 'Va faire a function qui regarde si le mot contient une lettre majuscule
        asNbr = checkNbr(itemName) 'Va faire a function qui regarde si le mot contient un chiffre entre 0 et 9

        If asDouble False And asUPPER True And asNbr = False Then
            'Ajoutera l'item celon la position choisi. Par default la position s'ajuste automatiquement celon la grandeur du listbox
            lstItem.Items.Insert((nudPosition.Value - 1), itemName)

            'Agrandi mon array avec les nom d'items
            ReDim newItemArray(lstItem.Items.Count - 1)
            newItemArray(lstItem.Items.Count - 1) = itemName

            nudPosition.Maximum = (newItemArray.Length + 1)
            nudPosition.Value = (newItemArray.Length + 1)
        Else
            MessageBox.Show("error") 'temporaire
        End If

    End Sub

    Function checkDouble(ByVal itemName As String) As Boolean
        'La function regarde pour un doublons et retourne true
        'si l'item ajouter est un doublons et false s'il ne l'est pas
        Dim asDouble As Boolean

        If lstItem.Items.Contains(itemName) Then
            asDouble = True
        Else
            asDouble = False
        End If

        Return asDouble

    End Function

    Function checkUPPER(ByVal itemName As String) As Boolean
        'déclaration des mes variables
        Dim iMaj As Integer
        Dim asUPPER As Boolean
        Dim cLetter As String

        asUPPER = False

        'Regarde si le char au compteur est une majuscule. Si il trouve une majuscule
        'je retourne true autrement false. Quand la majuscule est trouver je sort du "for"
        For iMaj = 0 To itemName.Length - 1
            cLetter = itemName.Chars(iMaj)
            If Char.IsUpper(cLetter) Then
                asUPPER = True
                Exit For
            End If
        Next

        Return asUPPER
    End Function

    Function checkNbr(ByVal itemName As String) As Boolean
        'Déclaration de mes variables
        Dim iNbr As Integer
        Dim asNbr As Boolean
        Dim cPos As String
        Dim cod32 As Integer

        asNbr = False

        For iNbr = 0 To itemName.Length - 1
            cPos = itemName.Chars(iNbr)
            cod32 = Convert.ToInt32(cPos)
            If cod32 >= 48 Or cod32 <= 57 Then
                asNbr = True
                Exit For
            End If
        Next

        Return asNbr
    End Function
End Class


Quand je compile et que j'essais de rentrer le nom de l'item , avant de l'ajouter a mon listbox, il me donne un erreur a cette ligne:

 cod32 = Convert.ToInt32(cPos)


Est-ce que quelqun d'entre vous voie se que je fait de pas correcte?

2 réponses

Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
cPos doit être un Char et non un String donc:
Dim cPos As Char


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Messages postés
23
Date d'inscription
jeudi 7 octobre 2010
Statut
Membre
Dernière intervention
20 juillet 2012

ohhh j'avais completement oublier ca!

Merci infiniment mon ami!