Sauvegarde Textbox (s) dans Fichier Txt

Résolu
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 - 16 déc. 2012 à 19:10
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 - 5 avril 2018 à 04:37
Bonsoir,

Donc voilà
Cela fait une heure que je cherche sur le Net pour trouver un moyen de sauvegarder des textbox dans un ficher Txt mais rien à faire tous les codes que j'ai trouver ne sont pas appropriés.
Je m'explique en détail :

Je possède exactement 48 textbox et je voudrais enregistrer chacune des textbox dans un fichier Bloc note de sorte à ce qu'il ressemble à ça :

- 1 "Contenu de textbox 1"
- 2 "Contenu de textbox 2"
- ..............
- 48 "Contenu de textbox 48"

J'utilise une savefiledialog pour enregistrer mon fichier mais après ce bout de code je bloque
SaveFileDialog1.ShowDialog()
.
J'ai vu qu'il existait un tas de code avec Writestream etc... mais je ne sais pas les utiliser
Merci d'avance pour l'aide

11 réponses

foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
16 déc. 2012 à 20:17
Merci pour ton code acive mais je veux que l'utilisateur puisse enregistrer le fichier ou il le souhaite en utilisant la showdialog.
J'ai donc utiliser le code suivant :

Dim Savefile As New SaveFileDialog
        If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            Dim path As String = "c:\temp" & DateTimePicker1.Text & ".txt"
            Dim sw As StreamWriter
            If File.Exists(path) False Then sw File.CreateText(path)
            sw.WriteLine(Textbox1.Text)
            sw.WriteLine(Textbox2.text)
            sw.Flush()
            sw.Close()
        End If 


Mais sw est souligné en vert et VB express me dit qu'une exception peut subvenir pendant l’exécution et c'est ce qu'il se passe :s

ShayW les textboxs sont crées en design mode avec VB express 2010
1
Utilisateur anonyme
16 déc. 2012 à 19:32
Bonsoir,
Essaye ça:
Imports System.IO
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim path As String = "c:\temp\TonFichier.txt"
        Dim sw As StreamWriter
        If File.Exists(path) False Then    sw File.CreateText(path)
            sw.WriteLine(TextBox1.Text)
            sw.WriteLine(TextBox2.Text)
            sw.WriteLine(TextBox3.Text)
            sw.WriteLine(TextBox4.Text)
            sw.Flush()
            sw.Close()
    End Sub
End Class



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 déc. 2012 à 20:06
Salut

tu veux sauvgarder tous tes textboxes les 48
ou il y peut en avoir plus
aussi tes texboxes sont crées en design mode avec
le IDE ou crée dynamiquement ?
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 déc. 2012 à 20:50
peut etre ainsi

Private Sub SaveTextbox(ByVal path As String)
        Dim list As New List(Of String)
        For Each ctrl As Control In Me.Controls
            If TypeOf ctrl Is TextBox Then
                list.Add(DirectCast(ctrl, TextBox).Text)
            End If
        Next
        IO.File.WriteAllLines(path, list.ToArray)
    End Sub
    Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseClick
        If SaveFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            SaveTextbox(SaveFileDialog1.FileName)
        End If
    End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
16 déc. 2012 à 21:39
C'est bon j'ai réussi !

Merci de votre aide et voici le code qui me permet de sauvegarder le fichier ou je veux et le nommer comme je le veux mais j'ai mis la date à la place du nom en fait :)

Dim Savefile As New SaveFileDialog
        SaveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
        SaveFileDialog1.FilterIndex = 2
        SaveFileDialog1.RestoreDirectory = True
        SaveFileDialog1.FileName = DateTimePicker1.Text & ".txt"
        SaveFileDialog1.Title = "Enregistrer sous"
        If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            Dim sw As StreamWriter = New StreamWriter(SaveFileDialog1.FileName & ".txt", True)
            sw.WriteLine("Le ticket est le numéro : " & TextBox1.Text)
            sw.WriteLine("Le ticket est le numéro : " & TextBox2.Text)
                sw.Flush()
                sw.Close()
        End If


Merci de votre aide
0
Utilisateur anonyme
16 déc. 2012 à 22:01
Ok,
ta première étape est faite... même si je n'ai pas compris à quoi sert cette ligne:
Dim Savefile As New SaveFileDialog


Maintenant comment vas-tu gérer tes 48 textbox?
Tu vas continuer comme ça jusqu'à 48?
sw.WriteLine("Le ticket est le numéro : " & TextBox1.Text)
sw.WriteLine("Le ticket est le numéro : " & TextBox2.Text)


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
16 déc. 2012 à 22:04
Elle ne sert à rien ^^. Erreur de copier - coller.
Je comptais faire un For.... Next ou faire une incrémentation de valeur qui serait alors plus rapide mais dans le pire des cas oui je continuerais comme ça jusqu'à 48
0
Utilisateur anonyme
16 déc. 2012 à 22:08
C'est ce que je me disais...
Tu peux faire comme ça:
 SaveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
        SaveFileDialog1.FilterIndex = 2
        SaveFileDialog1.RestoreDirectory = True
        SaveFileDialog1.FileName = DateTimePicker1.Text & ".txt"
        SaveFileDialog1.Title = "Enregistrer sous"
        If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            Dim sw As StreamWriter = New StreamWriter(SaveFileDialog1.FileName & ".txt", True)
            For i As Integer = 1 To 48
                sw.WriteLine("Le ticket est le numéro : " & (Me.Controls("TextBox" & i).Text))
            Next
            sw.Flush()
            sw.Close()
        End If



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
16 déc. 2012 à 22:12
Ou plutôt (d'après ce que j'ai compris:
            For i As Integer = 1 To 48
                sw.WriteLine("Le ticket est le numéro : " & i.ToString & " - " & (Me.Controls("TextBox" & i).Text))
            Next



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
foussouy Messages postés 55 Date d'inscription dimanche 14 août 2011 Statut Membre Dernière intervention 1 février 2013 1
16 déc. 2012 à 22:14
Ok merci beaucoup de ton aide je vais pouvoir sauvegarder mes données dans un fichier Bloc note et attendant de pouvoir les sauvegarder dans un fichier Excel ^^ mais ça ce sera pour plus tard quand j'aurais le temps :)
Merci encore.
0
Alvin1614 Messages postés 107 Date d'inscription lundi 24 avril 2017 Statut Membre Dernière intervention 22 décembre 2021
4 avril 2018 à 16:03
à quoi sert le
Dim sw As StreamWriter = New StreamWriter(SaveFileDialog1.FileName & ".txt", True)
?
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
4 avril 2018 à 21:03
BONJOUR
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
5 avril 2018 à 04:37
BONJOUR
0
Rejoignez-nous