none
Aprés Mise a jour du programme mes TEXTBOX ce vide RRS feed

  • Question

  • Bonjour,

    Voila je voulais savoir pourquoi quand je fait une mise a jour de mon programme toute mes textbox se remette a zéro ?

    Je voudrai faire les mise a jour du programme en gardant les données de mes textbox dèja enregistré dans l'ancienne mise a jour es ce possible ?

    Cordialement

    lundi 3 juin 2013 07:25

Réponses

  • Suite...

    Si mes réponses te sont utiles tu peux dans chacune d'elle en haut à gauche, cliquer sur le triangle vert pour me donner des points :o)

    Le code :

    Public Class Form1
     
      Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' ECRIT
        Dim p As New System.IO.StreamWriter(My.Application.Info.DirectoryPath & "\sauve.txt")
        p.WriteLine(TextBox1.Text)
        p.WriteLine(TextBox2.Text)
        p.Close()
      End Sub
    
      Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' LIT
        TextBox1.Text = ""
        TextBox2.Text = ""
        Dim p As New System.IO.StreamReader(My.Application.Info.DirectoryPath & "\sauve.txt")
        Try
          TextBox1.Text = p.ReadLine()
          TextBox2.Text = p.ReadLine()
        Catch ex As Exception
        End Try
        p.Close()
      End Sub
    
    End Class

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    lundi 3 juin 2013 10:10

Toutes les réponses

  • Bonjour Nicolas n° 591,

    Tout dépend ce que tu appelles une mise à jour. Normalement c'est le fait de changer d'exe (supprimer l'ancien + coller le nouveau), alors pour ça il faut que ton exe soit fermé, donc tu ne dois pas parler de ceci quand tu évoques une mise à jour, de quoi parles-tu ?

    A mon avis tu dois parler de la réinitialisation de ton programme...

    Première question, pourquoi réinitialises-tu, généralement on n'a pas besoin de faire ça ?

    Sinon, si tu veux sauvegarder, il faut enregistrer tes données dans un fichiers, puis quand l'opération de reset est réalisé, lire le fichier de sauvegarde et recharger tes objets.

    Au plaisir, cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    lundi 3 juin 2013 07:47
  • Bonjour Merci pour votre réponse

    En faite voila j'ai installer par exemple la version 1.0.0.0 j'ai fait des modifs sur mon programme donc je les republier en 1.0.0.1 je le reinstalle et la paff mes textbox son vide pourtent je les avai rempli dans la version 1.0.0.0 !!!

    Comment faire une sauvegarde ? pour récupéré mes données et les replacer dans la version 1.0.0.1

     

    Cordialement

    lundi 3 juin 2013 08:09
  • Suite...

    En enregistrant les données dans un fichier.

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    lundi 3 juin 2013 08:39
  • comment on fait pour enregistrer les données dans un fichier ?

    et surtout quel fichier ?

    Car la une fois l'application installer voici les fichiers qui sont dans le dossier

    j'ai un fichier .DLL

    Logiciel.application

    Logiciel.exe

    Logiciel.exe.config

    Logiciel.exe.manifest

    Dsl je connai pas trop ce programme mais merci pour votre aide :)

    Cordialement

    lundi 3 juin 2013 08:44
  • Suite...

    Si mes réponses te sont utiles tu peux dans chacune d'elle en haut à gauche, cliquer sur le triangle vert pour me donner des points :o)

    Le code :

    Public Class Form1
     
      Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' ECRIT
        Dim p As New System.IO.StreamWriter(My.Application.Info.DirectoryPath & "\sauve.txt")
        p.WriteLine(TextBox1.Text)
        p.WriteLine(TextBox2.Text)
        p.Close()
      End Sub
    
      Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' LIT
        TextBox1.Text = ""
        TextBox2.Text = ""
        Dim p As New System.IO.StreamReader(My.Application.Info.DirectoryPath & "\sauve.txt")
        Try
          TextBox1.Text = p.ReadLine()
          TextBox2.Text = p.ReadLine()
        Catch ex As Exception
        End Try
        p.Close()
      End Sub
    
    End Class

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    lundi 3 juin 2013 10:10
  • Merci super sa marche :)
    lundi 3 juin 2013 14:40
  • Bonjour encore une petite question ce code fonctionne bien mais impossible de mettre la main sur le fichier Sauve.txt pour le récupéré !

    Cordialement

    Public Class Form1
     
      Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' ECRIT
        Dim p As New System.IO.StreamWriter(My.Application.Info.DirectoryPath & "\sauve.txt")
        p.WriteLine(TextBox1.Text)
        p.WriteLine(TextBox2.Text)
        p.Close()
      End Sub
    
      Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' LIT
        TextBox1.Text = ""
        TextBox2.Text = ""
        Dim p As New System.IO.StreamReader(My.Application.Info.DirectoryPath & "\sauve.txt")
        Try
          TextBox1.Text = p.ReadLine()
          TextBox2.Text = p.ReadLine()
        Catch ex As Exception
        End Try
        p.Close()
      End Sub
    
    End Class


    mardi 4 juin 2013 15:07
  • Suite...

    Il se trouve dans le répertoire BIN sauf si tu as indiqué un autre chemin.

    Cordialement, Joe.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mardi 4 juin 2013 15:25
  • Oki merci mais quand je fait l'installation du setup sur un autre PC je ne vois pas ce fichier BIN

    Non je n'ai pas indiqué d'autre chemin !

    Cordialement

    mardi 4 juin 2013 19:16
  • suite...

    Ah, après installation, et bien fais avec ton programme en sorte qu'il écrive ce fichier, puis ensuite depuis C tu fais une recherche sur son nom...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mardi 4 juin 2013 19:35
  • j'ai bien rentrer ce code

    Public Class Form1
     
      Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' ECRIT
        Dim p As New System.IO.StreamWriter(My.Application.Info.DirectoryPath & "\sauve.txt")
        p.WriteLine(TextBox1.Text)
        p.WriteLine(TextBox2.Text)
        p.Close()
      End Sub
    
      Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' LIT
        TextBox1.Text = ""
        TextBox2.Text = ""
        Dim p As New System.IO.StreamReader(My.Application.Info.DirectoryPath & "\sauve.txt")
        Try
          TextBox1.Text = p.ReadLine()
          TextBox2.Text = p.ReadLine()
        Catch ex As Exception
        End Try
        p.Close()
      End Sub
    
    End Class

    mais peut etre que vous voulez dire le dossier BIN ?? sa se trouve ou pour que sa s'installe avec le programme ?

    Cordialement

    mardi 4 juin 2013 19:40
  • Suite,

    Non, le dossier BIN n'est pas installé, c'est un dossier utilisé via l'éditeur pour les sources.

    Après avoir installé le programme, tu le lances, tu remplis tes textBox, tu appuis sur le bouton1, puis sans rien toucher tu fais une rechercher depuis C sur le mot "sauve.txt", et tu sauras où il est.

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mardi 4 juin 2013 22:01
  • Bonjour,

    Je viens de faire l'essai mais impossible de trouver le fichier !!!!

    Cordialement

    mercredi 5 juin 2013 05:16
  • Bonjour, suite...

    Si tu as mis le code des boutons dans des procédure appelées automatiquement, ce qui est le but, ton fichier n'existe que le temps de la mise à jour et s'il y a une mise à jour, ensuite il est supprimé.

    Si tes textbox existent, qu'ils contiennent quelque chose, que tu fais ta mise à jour, et que tu récupères le contenu des textbox, c'est que ton fichier existe.

    Crées un textbox (le mien s'appelle 2 dans mon exemple), puis déclares un procédure évènementielle Shown dans laquelle tu mets le code qui suit :

    Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
      TextBox2.Text = My.Application.Info.DirectoryPath
    End Sub

    Après tu refais une installation (qui sera temporaire), que tu lances, et dans le textbox tu auras le chemin de l'endroit où s trouve le fichier texte voulu, tu peux évidemment copier, coller le chemin pour faire la recherche. Mais peut être que tu ne trouveras pas le fichier, tout dépend comment tu as agencé ton code...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mercredi 5 juin 2013 07:33
  • Merci super ces bon j'ai trouver :)

    encore une petite question je voulais savoir comment sa se fait que mes textbox ce vide a chaque fois quand je ferme le programme ?

    Cordialement

    mercredi 5 juin 2013 13:17
  • Suite...

    Le fonctionnement est prévu ainsi pour ne pas saturer la mémoire.

    Quand le programme se ferme il désalloue la mémoire impartie à ce dernier, et ses objets ainsi que ce qu'ils contiennent.

    C'est pourquoi lorsqu'on veut conserver des données on les enregistre sur disque, qui lui n'est pas volatil.

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mercredi 5 juin 2013 14:17
  • Bonjour Nicolas591,

    Le contenu et l'état des contrôles est volatile : il n'est pas conservé entre deux lancements. La méthode proposée par EhJoe est OK pour les TextBox, mais hors cas de mise à jour de version, pour retrouver l'état d'une Form telle que tu l'as quittée tu as ApplicationSettingsBase .

    Dans l'exemple cela sauvegarde la position, la taille, la couleur de la Form. Si il y avait des TextBox, tu pourrais aussi le faire :

    Dans Form1_Load ajouter :
      Me.TextBox1.Text = frmSettings1.txtBox1

    Dans Form1_FormClosing_1 ajouter :
        frmSettings1.txtBox1 = TextBox1.Text

    et ajouter une propriétés :

    <UserScopedSettingAttribute(), DefaultSettingValueAttribute("")> _
    Public Property txtBox1() As String
        Get
            Return CStr(Me("txtBox1"))
        End Get
        Set(ByVal value As String)
            Me("txtBox1") = value
        End Set
    End Property

    Mais de manière générale les données sont plutôt sauvegardées dans un fichier ou une BD, et la "personnalisation" de la Form via ApplicationSettingsBase, un fichier .ini ou le registre.


    Cordialement, Jacques


    • Modifié Jacques93 mercredi 5 juin 2013 14:27
    mercredi 5 juin 2013 14:25