MsgBox a label en Visual Basic

Résolu
Bonjour,

J'ai réussi a écrire d'une message box a un label mais le problème est que quand je ferme mon application et que je la relance il n'enregistre pas ce que j'ai écrit donc le texte revient au premier

Comment faire pour que le texte que j'ai écrit dans msgbox remplace définitivement le texte qui dans le label ???

Aidez moi svp !

Merci

27 réponses

Résumé de la discussion

Le souci décrit est que le texte saisi dans une message box et affiché dans un label n'est pas enregistré au redémarrage de l'application, et le label revient au texte initial. Des réponses recommandent d'écrire dans un fichier et de lire ce fichier au démarrage pour remplacer le texte du label, avec des exemples en VB et des commandes d'ouverture et d'écriture. Plusieurs suggèrent aussi d'utiliser un registre ou une cellule selon le contexte, et de protéger le mot de passe par cryptage avant l'enregistrement, afin d'améliorer la sécurité. En pratique, il est donc recommandé de créer une routine de sauvegarde persistante et de déclencher sa lecture lors de l'ouverture du programme pour que le texte affiché corresponde au fichier.

Bobot (l’IA à votre service)
  1. Bonjour,

    Tu dois stocker l'information dans un fichier, une cellule (si c'est du VBA Excel), un registre..., bref n'inporte où sauf dans le code du prog.
    A chaque demarrage, aller chercher l'info la où elle se trouve.
    Evidemment si c'est un mot de passe, il vaudrait mieux le crypter avant de l'enregistrer.

    ;)
    1. Je suis sous Visual Basic 2010 express en VB6

      Comment je fais pour stocker l'information dans un fichier ?

      Merci :)
      1. tu crées un fichier tout simple voir la commande open

        et tu prévois un bout de code pour lire le fichier quand tu lances ton programme
        1. En VB6:

          Voir dans l'aide comment utiliser les instructions open, print #, input #

          Il y a des exemples.

          ;)
          1. Quand je met "open" il me dit "déclaration inattendu" Que dois je faire ?
        2. Si tu ne pas le nez dans l'aide, tu n'arriveras pas à finir ton prog.
          Je te donne un exemple très simple, après ce sera à toi de poursuivre.

          'pour enregistrer le texte
          Sub CreateTextFile()
          Dim VarTxt As String

          VarTxt = "My_Password"
          'tu peux aussi mettre
          'VarTxt = Label6.Caption
          'ou encore
          'VarTxt = TextBox5.Text
          'suivant l'origine te ton texte

          Open "C:\MonFichier.txt" For Output As #1
          'remplace "C:\MonFichier.txt" par le chemin et le nom complet du fichier à créer
          'sois très prudent car si le fichier existe déjà il sera écrasé

          Print #1, VarTxt
          Close

          End Sub

          'pour récupérer le texte
          Sub ReadTextFile()
          Dim VarTxt As String

          Open "C:\MonFichier.txt" For Input As #1
          'remplace "C:\MonFichier.txt" par le chemin et le nom complet du fichier à lire

          Input #1, VarTxt
          Close

          MsgBox "Mot de Passe = " & VarTxt
          'tu peux aussi mettre
          'Label6.Caption = VarTxt
          'ou encore
          'TextBox1.Text = VarTxt
          'suivant l'endroit ou tu veux l'afficher

          End Sub
          1. Merci beaucoup mais il me dit que open n'est pas déclarer =s
        3. Public Class Form1
          
              Sub CreateTextFile()
                  Dim VarTxt As String
          
                  VarTxt = "My_Password"
          
          Open "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt" For Output As #1
          
          Print #1, VarTxt
                  Close()
          
              End Sub
          End Class
          1. est-ce qu'il ne manque pas un

            imports system.io ???
            je suis pas sur...
            1. Il ne faut pas mettre la sub CreateTextFile() dans Class Form1
              Il faut mettre cette procédure directement dans le code de Form1 qui contient les controles à atteindre.

              Enlève Public Class Form1 et End Class
              1. Je suis confu ! voila mon VB:
                Public Class Form2
                    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                        If verification() Then
                            Form3.Show()
                        Else
                            Form4.Show()
                
                        End If
                    End Sub
                    Function verification() As Boolean
                        Dim accepter As Boolean = True
                        If TextBox1.Text = Label6.Text Then
                            Label6.Hide()
                        Else
                            Label7.Show()
                        End If
                
                        If TextBox2.Text = TextBox4.Text Then
                            Form1.MaskedTextBox1.Text = Me.TextBox2.Text
                            Form3.Show()
                        Else
                            Label8.Show()
                            Label9.Show()
                
                        End If
                
                
                    End Function
                
                End Class


                Et je sais pas ou mettre
                Sub CreateTextFile()
                        Dim VarTxt As String
                
                        VarTxt = "My_Password"
                
                Open "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt" For Output As #1
                
                Print #1, VarTxt
                        Close()
                
                    End Sub
                End Class
                1. Effectivement, ça ne marche pas parce que c'est du VB.NET et moi je te parle de VB6, c'est légèrement différent
                  '-------------------------
                  Sub CreateTextFile()
                  Dim VarTxt As String

                  VarTxt = "My_Password"

                  FileOpen( 1, "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt", OpenMode.Output)

                  Print(1,VarTxt)

                  FileClose (1)

                  End Sub
                  '-----------------------

                  Voilà, c'est mieux si on parle la même langue.
                  1. Merci énormément :) Pourrez vous juste encore me dire comment envoyer un text a ce fichier text.txt et comment le récupéré ?

                    Merci encore
                    1. Bonsoir,

                      Alors pour envoyer un texte dans ce fichier, on vient de le voir.
                      La procédure Sub CreateTextFile() écrit la valeur de la variable VartTxt dans le fichier.
                      Admettons que tu veuilles ecrire le contenu de Form1.MaskedTextBox1, remplaces alors la ligne
                      VarTxt = "My_Password"

                      par
                      VarTxt = Form1.MaskedTextBox1.Text

                      Pour vérifier, aprés exécution ouvre le fichier text.txt avec Bloc Note. Tu devrais y trouver le contenu de Form1.MaskedTextBox1

                      Quand tu auras avancé jusque là, on verra comment récuperer ce texte

                      ;)
                      1. MERCI ! J'ai enfin réussi a écrire dans un fichier !!!

                        Maintenant reste a lire ce fichier pour que le mot de passe soit celui qui dans le fichier texte.

                        Encore une fois !
                        1. Bon, maintenant récupérer le contenu du fichier
                          voici la procédure:

                          '----------------------
                          Sub ReadTextFile()
                          Dim VarTxt As String

                          FileOpen( 1, "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt", OpenMode.Input)

                          VarTxt = LineInput(1)
                          FileClose(1)

                          MsgBox "Mot de Passe = " & VarTxt

                          End Sub
                          '------------------------

                          Si tu exécutes cette procédure, tu devrais voir dans la MsgBox le contenu du fichier text.txt

                          Remplaces la ligne
                          MsgBox "Mot de Passe = " & VarTxt

                          par
                          Me.TextBox2.Text = VarTxt

                          pour mettre le texte dans TextBox2 par exemple

                          ;)
                          1. Il ne se passe rien parce la procédure n'est pas exécutée.

                            Il faut provoquer un évènement qui va exécuter la procédure: par exemple, au moment de l'ouverture de Form1, ou le clic sur un bouton ....

                            Il faut voir à quel moment du prog on a besoin le l'info.

                            ;)
                            1. Pourtant j'ai mit:
                                  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                                      Dim VarTxt As String
                              
                                      FileOpen(1, "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt", OpenMode.Input)
                              
                                      VarTxt = LineInput(1)
                                      FileClose(1)
                              
                                      Me.Label3.Text = VarTxt
                              
                                  End Sub
                              • 1
                              • 2