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 :

Faire une sauvegarde des données TextBox et les récupérer à la demande.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut Faire une sauvegarde des données TextBox et les récupérer à la demande.
    Bonjour à tous
    Bonjour le Forum,


    Je sollicite l'aide du Forum, j'ai fait plusieurs recherche sur le net mais je bloque.

    j'ai un form avec 16 Textbox, 15 radioBouton et une CheckBox, Je souhaiterais sauvegarder les données des textbox, l'état des radioBouton et de la Checkbox, pour les récupérer au besoin.


    J'ai un début de code qui sauvegarde 3 Textbox dans un fichier texte, mais il manque la sauvegarde de l'état des radioBouton et de la CheckBox.


    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
    Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
     
            SaveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
            SaveFileDialog1.FilterIndex = 2
            SaveFileDialog1.RestoreDirectory = True
     
            If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
                Dim fileNumber As Integer
                fileNumber = FreeFile()
                FileOpen(fileNumber, SaveFileDialog1.FileName, OpenMode.Output)
                PrintLine(fileNumber, TextBox10.Text)
                PrintLine(fileNumber, TextBox8.Text)
                PrintLine(fileNumber, TextBox7.Text)
                FileClose(fileNumber)
            End If
    Pour le bouton de récupération des données il ne fonctionne pas du tout, voici le code.

    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
     Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
     
            OpenFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
     
            ' OpenFileDialog1.Filter.index = 2
     
            OpenFileDialog1.RestoreDirectory = True
     
            If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
                'Dim fileNumber As Integer
                Dim fileNumber As New System.IO.StreamReader()
                fileNumber = FreeFile()
                FileOpen(fileNumber, OpenFileDialog1.FileName, OpenMode.Output)
                TextBox10.Text = fileNumber.ReadLine
                TextBox8.Text = fileNumber.ReadLine
                TextBox7.Text = fileNumber.ReadLine
                'PrintLine(fileNumber, TextBox7.Text)
                FileClose(fileNumber)
     
            End If
    Merci pour votre support, j'ai beaucoup appris.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Enregistrer les valeurs brut de fonderies sans les associer à un identifiant quelconque est une mauvaise idée car cela impose de savoir dans quel ordre ils sont ajoutés et à quoi ils correspondent.
    Tu vas vite te mélanger les pinceaux si tu rajoute un ou plusieurs éléments.

    Je te suggère de créer un simple objet avec des propriété typée String pour les valeurs de tes zones de textes, et typées Boolean pour tes cases à cocher autres boutons radio.
    Ensuite, tu utilise les sérialise/désérialise en XML ou en JSON.
    Tu trouveras des tonnes d'exemples sur Google.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut
    Bonjour popo,

    Merci pour cette réponse rapide.

    Je suis débutant en vb.net, avez-vous un début de code qui inclurait une textbox, un radiobouton et une checkbox que je pourrais compléter.

    Je me mélange encore avec certain terme comme class ou création d'objet " instanciation".

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Le but est de t'aider à progresser.
    Te fournir un code prêt à l'emploi ne t'aidera pas à acquérir les bons réflex, ni à devenir autonome.
    Cela implique de te laisser faire une recherche avec les info que je t'ai déjà fourni.

    Je vais quand même te donner quelques conseils de plus pour ta recherche Google.
    Commence toujours ta recherche par le langage que tu utilises : ici "VB.NET"
    Ajoute y les mots clé que les personnes venues t'aider t'ont donné : ici "sérialise/désérialise en XML" ou "sérialise/désérialise en JSON".
    Et enfin traduit tout ça en anglais si les réponses des sites en français ne suffisent pas.
    Donc ici ça donnerai ceci : vb.net serialize to xml

    Et parmi les premiers liens devrait apparaître celui-ci :
    https://docs.microsoft.com/fr-fr/dot...-serialization

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien
    Inscrit en
    Juillet 2020
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Juillet 2020
    Messages : 141
    Par défaut
    Après avoir glanés quelques infos sur le net, je comprend que la sérialisation enregistre les objets avec les données, elle prend un instantané et, la désérialisation remet tout ça en place.

    Trois type de sérialisation existe JSON "plus récente", XML "plus ancienne" et binaire " plus rapide".

    Cela semble correspondre effectivement à mes besoins, mais j'ai une question, sur le form, en plus des Textbox de saisie de valeurs "décimal et string", j'ai 11 Textbox en lecture seule qui affichent les résultats des calculs ainsi que 3 circular progress bar pour les résultats en °C.

    Je me suis orienter au début vers les Textbox de saisie car les autres "éléments" sont des zones de résultats en lecture seule, peut on sérialiser qu'une partie "la saisie" ?

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Ce n'est pas le form que tu sérialise mais un objet dans lequel tu as transmis des valeurs issues du form.
    Comme dans le dernier exemple de cette doc.
    Sauf qu'au lieu de mettre des valeurs en dur, tu mets Textbox1.Text, Checkbox1.Checked, etc.

    Au passage, donne de vrais noms à tes composants parce qu'au bout d'un moment tu ne sauras plus à quoi correspond Textbox1, Textbox2.. TextbxoxN, etc.
    Le nommage c'est LA BASE !

    Après le type de sérialisation va dépendre de plusieurs critères.
    Le XML est le plus ancien mais c'est le plus verbeux et prendra plus de place physique.
    Il a été conçu pour être lisible et modifiable facilement par un humain.
    Et avec la notion de nœuds et d'attributs, tu bénéficie de plus de possibilités pour structurer tes informations.
    Structure dont tu n'a à priori pas vraiment besoin ici mais ce n'est pas parce que tu n'exploite pas toutes les possibilité d'un langage qu'il ne faut pas l'utiliser.
    Tes données seront en clair à l'intérieur

    Le JSON a été conçu pour échanger des données entre différents processus automatiques et de manière plus efficace qu'avec le XML.
    Il n'a donc pas été conçu pour être lu ou modifié par un humain (bien que cela reste possible mais plus difficile).
    Sa syntaxe est minimaliste ce qui nuit à la structuration.
    Si ce n'est pas gênant que tes données soient en clair, c'est parfaitement adapté à ton besoin.

    Le binaire sert à compacter des données pour les transmettre à travers un réseau ou pour les stocker dans une base de données (pour une économie de place)
    Il n'est pas tout lisible par un humain.
    Pour si peu d'informations, il est inutile compacter tes données (tu n'y gagneras pas grand chose)
    Si tu ne veux que ces données soit en clair, il est préférable de les crypter plutôt que des compacter.

Discussions similaires

  1. Lister des bases de données et faire une sauvegarde
    Par MonsieurPouet dans le forum SGBD
    Réponses: 0
    Dernier message: 31/03/2012, 17h23
  2. [AC-2003] Sauvegarde des données d'un enregistrement même si demande d'abandon
    Par Jeanpierre71 dans le forum IHM
    Réponses: 4
    Dernier message: 19/09/2011, 09h24
  3. Sauvegarder des données ceuillies dans une tbx
    Par TIREUR dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/03/2007, 15h53
  4. Réponses: 7
    Dernier message: 20/12/2006, 08h06
  5. [MySQL] Php, je ne comprends pas comment faire pour introduire des données dans une table
    Par Liondd dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/12/2006, 12h53

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