Integrer bouton enregistrer visual basic 2010

The King n 1 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, Bonsoir,

Je m'adresse a vous car après plusieurs jours de recherche infructueuse, je ne trouve toujours pas mon bonheur, en faite, je suis en train de faire un programme avec des combobox, textbox, checkbox, etc .. Et j'aimerais pouvoir enregistrer tout ce qui va être écrit, cocher, sélectionner et tout, et pour bien faire ouvrir le fichier d'enregistrement
Avez vous une idée chère collègue internaute ? je vous en remercie d'avance

Abdel

A voir également:

3 réponses

The King n 1 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci de m'avoir répondu, j'ai fais quelque recherche et je suis tomber sur ce code que j'ai un peu modifier, mais le fichier enregistrer ne pese rien du tout c'est a dire qu'il ne fait que 0 ko donc je me retrouve bloquer :/
Voici le code :
Private Sub Button3_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button3.Click
        ' Displays a SaveFileDialog so the user can save the Image
        ' assigned to Button2.
        Dim saveFileDialog1 As New SaveFileDialog()
        saveFileDialog1.Filter = "Routier file|*.rout"
        saveFileDialog1.Title = "Save an Routier File"
        saveFileDialog1.ShowDialog()

        ' If the file name is not an empty string open it for saving.
        If saveFileDialog1.FileName <> "" Then
            ' Saves the Image via a FileStream created by the OpenFile method.
            Dim fs As System.IO.FileStream = CType _
               (saveFileDialog1.OpenFile(), System.IO.FileStream)
            ' Saves the Image in the appropriate ImageFormat based upon the
            ' file type selected in the dialog box.
            ' NOTE that the FilterIndex property is one-based.
            Select Case saveFileDialog1.FilterIndex
            End Select

            fs.Close()
        End If
    End Sub


Merci de votre réponse
3
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je ne connais pas Visual Basic, personnellement j'utilise les Windows Forms en C++
Cependant vu ton code il apparaît évident que tu n'enregistres nul part les données que tu souhaites sauvegarder. Une fois ton fichier sélectionné par l'utilisateur il te reste une étape importante à faire !

Private Sub Button3_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button3.Click

        Dim saveFileDialog1 As New SaveFileDialog()
        saveFileDialog1.Filter = "Routier file|*.rout"
        saveFileDialog1.Title = "Save an Routier File"
        saveFileDialog1.ShowDialog()

        If saveFileDialog1.FileName <> "" Then
            Dim fs As System.IO.FileStream = CType _
               (saveFileDialog1.OpenFile(), System.IO.FileStream)
            ' ECRITURE DES DONNEES DANS LE FICHIER
            ' Exemple : ecrire combobox1.Text, saut de ligne, label2.Text...
            fs.Close()
        End If
    End Sub
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Au niveau de la boîte à outils tu vas avoir OpenFileDialog et SaveFileDialog aux noms très explicites... Je vois deux méthodes pour faire ce que tu veux :

Une méthode "réfléchie" où seules les informations que tu veux sauvegarder seront placées dans un fichier. Tu devras pour cela créer ton propre format de fichier de manière à pouvoir relire les informations que tu auras enregistré.
Le plus simple étant par exemple de mettre une information par ligne pour chacun des éléments (l'indice du ComboBox, le texte du TextBox, true ou false pour CheckBox...)

Une méthode "automatique", la sérialisation (regarde ici). Plus difficile à mettre en place, elle va sauvegarder un "instantané" de ta fenêtre et tout stocker de son état.

Je pense que dans ton cas la première méthode est à privilégier car sérialiser une fenêtre me paraît plutôt lourd au vue de toutes les informations qui seront sauvegardées alors qu'au final seules quelques unes t'intéressent vraiment...
2
The King n 1 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci de ta réponse très rapide
voila ce que j'ai rajouté mais il me dit : la conversion de la chaine "" en integer n'est pas valide

Private Sub Button3_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles Button3.Click

        Dim saveFileDialog1 As New SaveFileDialog()
        saveFileDialog1.Filter = "Routier file|*.rout"
        saveFileDialog1.Title = "Save an Routier File"
        saveFileDialog1.ShowDialog()

        If saveFileDialog1.FileName <> "" Then
            Dim fs As System.IO.FileStream = CType _
               (saveFileDialog1.OpenFile(), System.IO.FileStream)
            ' ECRITURE DES DONNEES DANS LE FICHIER
            ' Exemple : ecrire combobox1.Text, saut de ligne, label2.Text...
            Write(ComboBox1.Text, ComboBox2.Text, ComboBox3.Text, TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text, TextBox5.Text, TextBox6.Text, TextBox7.Text, TextBox8.Text, TextBox9.Text, TextBox10.Text, TextBox11.Text)
            fs.Close()
        End If
    End Sub


Je tien à préciser que je débute complétement dans le VB
Merci
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Toi tu débutes et moi j'en ai jamais fait (et je n'ai pas l'intention d'en faire).
Cependant d'une manière ou d'une autre les écritures dans le fichier devront se faire avec le flux fs que tu as déclaré juste au-dessus. sûrement quelquechose comme fs.write(ComboBox1.Text).
Pour apprendre à te servir des fichiers en VB, regarde ce tutoriel.
0
The King n 1 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   4
 
C'est bien gentil de votre part, j'y ai jeté un cou d'oeuil, mais je n'ai toujours pas reussi, j'ai essayer de mettre fs.write(ComboBox1.Text) mais il me dit qu'il ne peut pas contenir autant d'argument, et quand je met fs.WriteByte(ComboBox1.Text) il me dit qu'il ne peut pas convertir " Aller - Retour" en byte :/
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Cela pourrait venir de ton fs, je l'avait conservé de ton code mais il est peut-être faux.
En cherchant un peu (ce que tu pourrais faire aussi !) j'ai trouvé How to: Write Text to a File
Si je l'adapte à ton problème ça donnerait :

Using outfile As New StreamWriter(saveFileDialog1.FileName)
    outfile.Write(ComboBox1.Text)
    outfile.Write(ComboBox2.Text)
    outfile.Write(ComboBox3.Text)
    outfile.Write(TextBox1.Text)
    outfile.Write(TextBox2.Text)
    outfile.Write(TextBox3.Text)
    outfile.Write(TextBox4.Text)
    outfile.Write(TextBox5.Text)
    outfile.Write(TextBox6.Text)
    outfile.Write(TextBox7.Text)
    outfile.Write(TextBox8.Text)
    outfile.Write(TextBox9.Text)
    outfile.Write(TextBox10.Text)
    outfile.Write(TextBox11.Text)
End Using
0
The King n 1 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci beaucoup, mais si je vous donne l'impression que je ne cherche pas je m'en excuse mais ca fais très très longtemps que je cherche une solution a mon probleme, je n'ai pas l'habitude de venir posté parce que je trouve la plus part du temps tout seul une reponse mais la j'etais coincé, alors voila mon fichier fais 66ko donc c'est la preuve que votre code fonctionne, maintenant quand j'essai de l'ouvrir, rien ne se passe voici mon code que j'ai trouver directement sur le site de microsoft, je vais continué a chercher de mon coté, si je trouve je vous fais signe
Dim myStream As Stream = Nothing
        Dim openFileDialog1 As New OpenFileDialog()

        openFileDialog1.InitialDirectory = "c:\"
        openFileDialog1.Filter = "Routier file (*.rout)|*.rout|All files (*.*)|*.*"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True

        If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            Try
                myStream = openFileDialog1.OpenFile()
                If (myStream IsNot Nothing) Then
                    ' Insert code to read the stream here.
                End If
            Catch Ex As Exception
                MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message)
            Finally
                ' Check this again, since we need to make sure we didn't throw an exception on open.
                If (myStream IsNot Nothing) Then
                    myStream.Close()
                End If
            End Try
        End If
1
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
C'est pareil que tout à l'heure, rien ne se passe car il manque les instructions les plus importantes. D'ailleurs le commentaire ' Insert code to read the stream here. est assez explicite.
0