IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Générer un chiffre ou une lettre aléatoirement via une fonction


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Générer un chiffre ou une lettre aléatoirement via une fonction
    Bonjour j'aimerais savoir comment générer un chiffre ou une lettre aléatoirement à partir d'une fonction.
    J'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     Public Function GetRandomNumber( _
          Optional ByVal Low As Integer = 1, _
          Optional ByVal High As Integer = 100) As Integer
            'Donne nb aléa
            Return objRandom.Next(Low, High + 1)
        End Function
    dans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
     
    Public Class Form1
        Dim objRandom As New System.Random(CType(System.DateTime.Now.Ticks Mod System.Int32.MaxValue, Integer))
     
        Public Function GetRandomNumber( _
          Optional ByVal Low As Integer = 1, _
          Optional ByVal High As Integer = 100) As Integer
            'Donne nb aléa
            Return objRandom.Next(Low, High + 1)
        End Function
        Public Sub rd()
            Label1.Text = GetRandomNumber(1, 9)
            Label2.Text = GetRandomNumber(1, 9)
            Label3.Text = GetRandomNumber(1, 9)
            Label4.Text = GetRandomNumber(1, 9)
            Label5.Text = GetRandomNumber(1, 9)
            Label6.Text = GetRandomNumber(1, 9)
            Label8.Text = GetRandomNumber(1, 9)
            Label9.Text = GetRandomNumber(1, 9)
            Label10.Text = GetRandomNumber(1, 9)
            Label11.Text = GetRandomNumber(1, 9)
            Label12.Text = GetRandomNumber(1, 9)
            Label13.Text = GetRandomNumber(1, 9)
            Label14.Text = GetRandomNumber(1, 9)
            Label15.Text = GetRandomNumber(1, 9)
            Label16.Text = GetRandomNumber(1, 9)
            Label17.Text = GetRandomNumber(1, 9)
            Label18.Text = GetRandomNumber(1, 9)
            Label19.Text = GetRandomNumber(1, 9)
            Label20.Text = GetRandomNumber(1, 9)
            Label21.Text = GetRandomNumber(1, 9)
            Label22.Text = GetRandomNumber(1, 9)
            Label23.Text = GetRandomNumber(1, 9)
            Label24.Text = GetRandomNumber(1, 9)
            Label25.Text = GetRandomNumber(1, 9)
            Label26.Text = GetRandomNumber(1, 9)
            Label27.Text = GetRandomNumber(1, 9)
            Label28.Text = GetRandomNumber(1, 9)
            Label29.Text = GetRandomNumber(1, 9)
            Label30.Text = GetRandomNumber(1, 9)
            Label31.Text = GetRandomNumber(1, 9)
            Label32.Text = GetRandomNumber(1, 9)
            Label33.Text = GetRandomNumber(1, 9)
            Label34.Text = GetRandomNumber(1, 9)
            Label35.Text = GetRandomNumber(1, 9)
            Label36.Text = GetRandomNumber(1, 9)
            Label37.Text = GetRandomNumber(1, 9)
            Label38.Text = GetRandomNumber(1, 9)
            Label39.Text = GetRandomNumber(1, 9)
            Label40.Text = GetRandomNumber(1, 9)
            Label41.Text = GetRandomNumber(1, 9)
     
     
     
     
     
        End Sub
        Private Sub Label1_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.MouseEnter
            TextBox1.Text = TextBox1.Text & Label1.Text
            rd()
        End Sub
        Private Sub Label2_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.MouseEnter
            TextBox1.Text = TextBox1.Text & Label2.Text
            rd()
        End Sub
        Private Sub Label3_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.MouseEnter
            TextBox1.Text = TextBox1.Text & Label3.Text
            rd()
        End Sub
        Private Sub Label4_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.MouseEnter
            TextBox1.Text = TextBox1.Text & Label4.Text
            rd()
        End Sub
        Private Sub Label5_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.MouseEnter
            TextBox1.Text = TextBox1.Text & Label5.Text
            rd()
        End Sub
        Private Sub Label6_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label6.MouseEnter
            TextBox1.Text = TextBox1.Text & Label6.Text
            rd()
        End Sub
        Private Sub Label8_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label8.MouseEnter
            TextBox1.Text = TextBox1.Text & Label8.Text
            rd()
        End Sub
        Private Sub Label9_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label9.MouseEnter
            TextBox1.Text = TextBox1.Text & Label9.Text
            rd()
        End Sub
        Private Sub Label10_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label10.MouseEnter
            TextBox1.Text = TextBox1.Text & Label10.Text
            rd()
        End Sub
        Private Sub Label11_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label11.MouseEnter
            TextBox1.Text = TextBox1.Text & Label11.Text
            rd()
        End Sub
        Private Sub Label12_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label12.MouseEnter
            TextBox1.Text = TextBox1.Text & Label12.Text
            rd()
        End Sub
        Private Sub Label13_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label13.MouseEnter
            TextBox1.Text = TextBox1.Text & Label13.Text
            rd()
        End Sub
        Private Sub Label14_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label14.MouseEnter
            TextBox1.Text = TextBox1.Text & Label14.Text
            rd()
        End Sub
        Private Sub Label15_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label15.MouseEnter
            TextBox1.Text = TextBox1.Text & Label15.Text
            rd()
        End Sub
        Private Sub Label16_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label16.MouseEnter
            TextBox1.Text = TextBox1.Text & Label16.Text
            rd()
        End Sub
        Private Sub Label17_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label17.MouseEnter
            TextBox1.Text = TextBox1.Text & Label17.Text
            rd()
        End Sub
        Private Sub Label18_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label18.MouseEnter
            TextBox1.Text = TextBox1.Text & Label18.Text
            rd()
        End Sub
        Private Sub Label19_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label19.MouseEnter
            TextBox1.Text = TextBox1.Text & Label19.Text
            rd()
        End Sub
        Private Sub Label20_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label20.MouseEnter
            TextBox1.Text = TextBox1.Text & Label20.Text
            rd()
        End Sub
        Private Sub Label21_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label21.MouseEnter
            TextBox1.Text = TextBox1.Text & Label21.Text
            rd()
        End Sub
        Private Sub Label22_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label22.MouseEnter
            TextBox1.Text = TextBox1.Text & Label22.Text
            rd()
        End Sub
        Private Sub Label23_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label23.MouseEnter
            TextBox1.Text = TextBox1.Text & Label23.Text
            rd()
        End Sub
        Private Sub Label24_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label24.MouseEnter
            TextBox1.Text = TextBox1.Text & Label24.Text
            rd()
        End Sub
        Private Sub Label25_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label25.MouseEnter
            TextBox1.Text = TextBox1.Text & Label25.Text
            rd()
        End Sub
        Private Sub Label26_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label26.MouseEnter
            TextBox1.Text = TextBox1.Text & Label26.Text
            rd()
        End Sub
        Private Sub Label27_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label27.MouseEnter
            TextBox1.Text = TextBox1.Text & Label27.Text
            rd()
        End Sub
        Private Sub Label28_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label28.MouseEnter
            TextBox1.Text = TextBox1.Text & Label28.Text
            rd()
        End Sub
        Private Sub Label29_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label29.MouseEnter
            TextBox1.Text = TextBox1.Text & Label29.Text
            rd()
        End Sub
        Private Sub Label30_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label30.MouseEnter
            TextBox1.Text = TextBox1.Text & Label30.Text
            rd()
        End Sub
        Private Sub Label31_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label31.MouseEnter
            TextBox1.Text = TextBox1.Text & Label31.Text
            rd()
        End Sub
        Private Sub Label32_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label32.MouseEnter
            TextBox1.Text = TextBox1.Text & Label32.Text
            rd()
        End Sub
        Private Sub Label33_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label33.MouseEnter
            TextBox1.Text = TextBox1.Text & Label33.Text
            rd()
        End Sub
        Private Sub Label34_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label34.MouseEnter
            TextBox1.Text = TextBox1.Text & Label34.Text
            rd()
        End Sub
        Private Sub Label35_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label35.MouseEnter
            TextBox1.Text = TextBox1.Text & Label35.Text
            rd()
        End Sub
        Private Sub Label36_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label36.MouseEnter
            TextBox1.Text = TextBox1.Text & Label36.Text
            rd()
        End Sub
        Private Sub Label37_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label37.MouseEnter
            TextBox1.Text = TextBox1.Text & Label37.Text
            rd()
        End Sub
        Private Sub Label38_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label38.MouseEnter
            TextBox1.Text = TextBox1.Text & Label38.Text
            rd()
        End Sub
        Private Sub Label39_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label39.MouseEnter
            TextBox1.Text = TextBox1.Text & Label39.Text
            rd()
        End Sub
        Private Sub Label40_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label40.MouseEnter
            TextBox1.Text = TextBox1.Text & Label40.Text
            rd()
        End Sub
        Private Sub Label41_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label41.MouseEnter
            TextBox1.Text = TextBox1.Text & Label41.Text
            rd()
        End Sub
        Public Sub ClearTextBox(ByVal root As Control)
            For Each ctrl As Control In root.Controls
                ClearTextBox(ctrl)
                If TypeOf ctrl Is TextBox Then
                    CType(ctrl, TextBox).Text = String.Empty
                End If
            Next ctrl
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ClearTextBox(Me)
        End Sub
    End Class

    Il me faudrait un fonction presque pareil pour des chiffres, des lettres minuscules et majuscules.

    Merci d'avance de vos réponses.


    PS: merci de bien vouloir corriger si nécessaire mon script.


    Edit:

    J'ai pensé à ça pour les lettres:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public function letter()
     
    Dim rand As New Random
    		Dim letter As String
    		letter = ChrW(rand.Next(Asc("A"), Asc("Z") + 1))
    return letter
     
    End Function
    Mais une fois de plus ça ne génère que des lettres et seulement des majuscules ou des minuscules.

    Edit2;

    J'aimerais changer le style de la fenêtre de mon programme pour en faire un personnalisé.
    Je voudrais savoir comment changer le style de Form et aussi comment créer un style sous photoshop.

  2. #2
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 570
    Points
    3 570
    Par défaut
    Tu peux, par exemple, créer une chaîne de caractères avec les caractères que tu veux, et en prendre un au hasard.

    Exemple ec C# (je ne connais pas VB, sorry, mais je pense que c'est clair) :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     private Random _random = new Random((int)DateTime.Now.Ticks);
            private string charlist = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
     
            private char GetRandomChar()
            {
                return charlist[_random.Next(0, charlist.Length - 1)];
     
            }

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par GuruuMeditation Voir le message
    Tu peux, par exemple, créer une chaîne de caractères avec les caractères que tu veux, et en prendre un au hasard.

    Exemple ec C# (je ne connais pas VB, sorry, mais je pense que c'est clair) :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     private Random _random = new Random((int)DateTime.Now.Ticks);
            private string charlist = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
     
            private char GetRandomChar()
            {
                return charlist[_random.Next(0, charlist.Length - 1)];
     
            }
    Je suis un peu débutant ^^ ça va être dur pour moi de transformer ça en fonction.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125

  5. #5
    Membre actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Points : 205
    Points
    205
    Par défaut Demande de précisions.
    Bonjour.

    Quand vous dites "un chiffre", voulez-vous parler d'un nombre à un seul chiffre (par exemple 3) ou de la représentation littérale d'un chiffre (par exemple "3") ?

  6. #6
    Membre actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Points : 205
    Points
    205
    Par défaut
    Dans la seconde hypothèse, je vous propose le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Imports System.Random
    Public Class Accueil
     
        Public Sub EngendrerAléa()
            Dim Rdm As New Random
            Dim Lst() As Byte
            Dim Oct As Byte, Txt As String
            ReDim Lst(0)
            Rdm.NextBytes(Lst)
            Oct = Lst(0)
            If Oct < 32 Then
                Txt = Oct.ToString
            Else
                Txt = Chr(Oct)
            End If
            MsgBox(Txt)
        End Sub
     
        Private Sub bTst_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bTst.Click
            EngendrerAléa()
        End Sub
    End Class
    qui suppose que dans le formulaire "Accueil" se trouve un bouton de commande nommé "bTst". Chaque clic sur ce bouton vous affichera une lettre ou la représentation littérale d'un nombre.
    Des améliorations sont sûrement possibles, en modifiant la détermination de Txt en fonction de Oct.

    En espérant vous avoir aidé.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut


    mon programme génère des chiffres aléatoires au passage de la souris et les inscrit dans le textbox. J'aimerais juste créer une fonction qui à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Public Function GetRandomNumber( _
          Optional ByVal Low As Integer = 1, _
          Optional ByVal High As Integer = 100) As Integer
            'Donne nb aléa
            Return objRandom.Next(Low, High + 1)
        End Function
    puisse aussi générer des lettres. Il me faut une fonction car comme je débute je ne sais pas faire autrement pour assigner la fonction qui génère aux labels.

    Faudra-t-il changer les valeurs entre parenthèses ici: "Label1.Text = GetRandomNumber(1, 9)" avec la nouvelle fonction?

    Merci d'avance

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    GuruuMeditation t'a donné le code c# qui répond à ton problème, et je t'ai donné le lien d'un site pour convertir du c# en vb.net

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    GuruuMeditation t'a donné le code c# qui répond à ton problème, et je t'ai donné le lien d'un site pour convertir du c# en vb.net
    merci, le site avait un problème mais maintenant c'est bon. Je vais tester tout ça et revenir donner des nouvelles.



    Edit:

    J'ai une erreur:

    L'exception System.InvalidOperationException n'a pas été gérée
    Message=Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est*: L'opération arithmétique a provoqué un dépassement de capacité.
    Source=generateur de mot de passe
    StackTrace:
    à generateur_de_mot_de_passe.My.MyProject.MyForms.Create__Instance__[T](T Instance) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 190
    à generateur_de_mot_de_passe.My.MyProject.MyForms.get_Form1()
    à generateur_de_mot_de_passe.My.MyApplication.OnCreateMainForm() dans C:\Users\ChronoSpell\Documents\Visual Studio 2010\Projects\generateur de mot de passe\generateur de mot de passe\My Project\Application.Designer.vb:ligne 35
    à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
    à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
    à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
    à generateur_de_mot_de_passe.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81
    à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
    à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
    à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    à System.Threading.ThreadHelper.ThreadStart()
    InnerException: System.OverflowException
    Message=L'opération arithmétique a provoqué un dépassement de capacité.
    Source=generateur de mot de passe
    StackTrace:
    à generateur_de_mot_de_passe.Form1..ctor() dans C:\Users\ChronoSpell\Documents\Visual Studio 2010\Projects\generateur de mot de passe\generateur de mot de passe\Form1.vb:ligne 3
    InnerException:

    ça serait pas un problème avec les entier?

  10. #10
    Membre actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Points : 205
    Points
    205
    Par défaut
    Re.

    La fonction qui suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function CaractèreAléatoire() As Char
            Dim Car As Char
            Dim Rdm As New Random
            Dim Lst(0) As Byte, Oct As Byte
            Dim Réf As String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ€£"
            Rdm.NextBytes(Lst)
            Oct = Lst(0) Mod 64
            Car = Mid(Réf, Oct + 1, 1)
            Return Car
        End Function
    a des chances de vous convenir.

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    super ! Le code marche :p
    Mais je pourrais savoir comment avoir un caractère différent à chaque label? Et aussi comment avoir un caractère différent à chaque label à chaque lancement du programme?

    car avec cette fonction j'ai le même caractère sur tous au passage de la souris

    J'ai fait quelque chose mais c'est du travail de débutant. J'ai copié 40 fois cette fonction et je les ai modifié pour en obtenir 40 différentes. Il me suffirait de trouver un mélangeur de caractères pour mélanger la chaine: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Du coup je n'aurais plus le même caractère sur 2 label

    Edit:
    parfois y'a des labels qui n'affichent plus rien je ne sais pas pourquoi.

  12. #12
    Membre actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Points : 205
    Points
    205
    Par défaut
    Bonsoir SystemD.

    1) Pour avoir un caractère différent à chaque label, il faut à chaque passage rappeler la fonction "CaractèreAléatoire". Notez bien qu'elle s'écrit au singulier. En effet, elle ne crache qu'un caractère à la fois.

    2) Le caractère craché à chaque lancement du programme est aléatoire, et ce grâce aux propriétés de la fonction "NextBytes" que vous voyez en ligne 6 du code.

    3) Si certains labels n'affichent rien, c'est probablement dû au fait que vous avez enlevé les deux derniers caractères (€ et £) de la chaîne de référence. Il est en effet impératif que celle-ci contienne 64 caractères. C'est une subtilité de l'algorithme qui se cache sous les lignes de code. Il est très simple à écrire, et moins simple à expliquer.

    Cordialement.

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord j'aimerais vous remercie de vos réponses.
    Mon soucis c'est ça:


    - à chaque nouvelle ouverture du programme j'ai exactement les même lettres au même endroits.
    - la plus part des labels affichent le même caractère jusqu'à ce qu'il soit changé par un nouveau passage de la souris.

    ce que je cherche à faire:

    - un caractère différent à chaque label à chaque nouvel ouverture du programme
    - un caractère différent à chaque label généré par la fonction.

    Ceci étant une partie de mon projet pour mon bac, j'ai besoin de le finir le plus vite possible puisque je n'aurais plus internet à partir du 2 septembre puis je dois comprendre ce programme et savoir le faire comprendre à un jurés.

  14. #14
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 570
    Points
    3 570
    Par défaut
    Faudrait que tu nous montres ton code. Comme ça, c'est dur de savoir pourquoi.

  15. #15
    Membre actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Points : 205
    Points
    205
    Par défaut
    C'est encore moi.

    Puisque nous sommes dans l'urgence, j'ai "bricolé un truc" dont vous pourrez peut-être vous inspirer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Imports System.Random
    Public Class Accueil
     
        Private Sub Lab1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lab1.MouseMove
            Lab1.Text = CaractèreAléatoire()
        End Sub
     
        Private Sub Lab2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lab2.MouseMove
            Lab2.Text = CaractèreAléatoire()
        End Sub
     
        Private Sub Lab3_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lab3.MouseMove
            Lab3.Text = CaractèreAléatoire()
        End Sub
     
        Private Sub Lab4_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lab4.MouseMove
            Lab4.Text = CaractèreAléatoire()
        End Sub
     
        Private Sub Lab5_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lab5.MouseMove
            Lab5.Text = CaractèreAléatoire()
        End Sub
     
        Private Sub Lab6_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lab6.MouseMove
            Lab6.Text = CaractèreAléatoire()
        End Sub
     
        Private Sub Lab7_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Lab7.MouseMove
            Lab7.Text = CaractèreAléatoire()
        End Sub
     
        Public Function CaractèreAléatoire() As Char
            Dim Car As Char
            Dim Rdm As New Random
            Dim Lst(0) As Byte, Oct As Byte
            Dim Réf As String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ€£"
            Rdm.NextBytes(Lst)
            Oct = Lst(0) Mod 64
            Car = Mid(Réf, Oct + 1, 1)
            Return Car
        End Function
     
    End Class
    Il va de soi que les Labn sont des Contrôles Label déposés sur le formulaire.

    Bon courage.

  16. #16
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Ceci vient du fait que l'appel de la fonction utilise à chaque fois un nouveau random. Le random est calculé sur une unité de temps du processeur et malheureusement, à un temps T, si on appelle 10 fois la fonction, c'est 10 fois le même random qui va sortir...

    On peut visualiser ceci en faisant (interface à un bouton et un listbox):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Public Class Form1
     
        Public Function CaractèreAléatoire() As Char
            Dim Car As Char
            Dim Rdm As New Random
            Dim Lst(0) As Byte, Oct As Byte
            Dim Réf As String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ€£"
            Rdm.NextBytes(Lst)
            Oct = Lst(0) Mod 64
            Car = Mid(Réf, Oct + 1, 1)
            Return Car
        End Function
     
        Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim col As New Collection
            For i As Integer = 0 To 1000
                col.Add(CaractèreAléatoire)
            Next
            ListBox1.DataSource = col
        End Sub
    End Class
    Ca donne toujours la même réponse.

    Par contre, en utilisant toujours le même random nous n'avons plus de problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Public Class Form1
        Private Rdm As New Random
        Public Function CaractèreAléatoire() As Char
            Dim Car As Char
            ' Ancienne ligne du random 
            Dim Lst(0) As Byte, Oct As Byte
            Dim Réf As String = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ€£"
            Rdm.NextBytes(Lst)
            Oct = Lst(0) Mod 64
            Car = Mid(Réf, Oct + 1, 1)
            Return Car
        End Function
     
        Private Sub Button1_Click_1(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim col As New Collection
            For i As Integer = 0 To 1000
                col.Add(CaractèreAléatoire)
            Next
            ListBox1.DataSource = col
        End Sub
    End Class

    On peut voir que j'ai changé la ligne 5 du premier code que j'ai mi en ligne 2 du deuxième et plus de soucis.


    C'était dans le code donné à la base par GuruuMeditation

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup ! ça marche super bien !

    Edit:
    j'ai une petit question. Comment toujours enlever le premier caractère saisi par la souris dans textbox?

  18. #18
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par SystemD Voir le message
    Comment toujours enlever le premier caractère saisi par la souris dans textbox?
    L'enlever de quoi? Du futur nombre aléatoire qui va sortir?

  19. #19
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    enlever le premier caractère qui s'affiche dans le textbox

  20. #20
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    substring...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification dans une bdd via une liste choisie via une checkbox
    Par LuffyWinchester dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 20/03/2015, 15h41
  2. Réponses: 1
    Dernier message: 03/10/2014, 19h40
  3. [PHP 5.0] Générer un nombre aléatoire via une date
    Par fallais dans le forum Langage
    Réponses: 7
    Dernier message: 31/10/2010, 16h31
  4. OJB : générer une clé primaire via une séquence
    Par dams78 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 25/08/2010, 09h52
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo