none
Enregistrer/Charger plusieur textbox. RRS feed

  • Question

  • Bonjour a tous,

    Je suis débutent et je recherche une méthode facile, si possible, de pouvoir enregistrer plus de 2000 textbox dans un fichier .txt sans que ça sois sur la même ligne et qu'à la suite, je puisse le charger a l'ouverture du logiciel ou via un bouton.

    Merci de votre aide.

    lundi 5 mai 2014 08:20

Réponses

  • bonjour,

    voici en simplifier :

    les codes :

    Imports System.IO
    
    Public Class Form1
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim open As New OpenFileDialog
            open.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If open.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = open.FileName
            End If
            Me.clear()
            Me.lire(open.FileName)
        End Sub
    
        Private Sub clear()
            TextBox3.Clear()
            TextBox4.Clear()
            TextBox5.Clear()
        End Sub
    
        Private Sub lire(wl As String)
            Dim textDeLignes() As String = File.ReadAllLines(wl)
            TextBox3.Text = textDeLignes(0)
            TextBox4.Text = textDeLignes(1)
            TextBox5.Text = textDeLignes(2)
            MsgBox("Open completed!", MsgBoxStyle.Information)
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Dim save As New SaveFileDialog
            save.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If save.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox2.Text = save.FileName
            End If
            Me.ecrire(save.FileName)
        End Sub
    
        Private Sub ecrire(wr As String)
            Dim fermer As New StreamWriter(wr)
            fermer.WriteLine(TextBox3.Text)
            fermer.WriteLine(TextBox4.Text)
            fermer.WriteLine(TextBox5.Text)
            fermer.Close()
            MsgBox("Save completed!", MsgBoxStyle.Information)
        End Sub
    
    End Class
    Bien cordialement,

    • Marqué comme réponse Popol85 jeudi 8 mai 2014 23:28
    jeudi 8 mai 2014 12:10
  • Bonjour, je sais que le topic date, mais j'ai trouver une solution qui simplifie la tache en quelque ligne si vous avez 4000 ligne a faire.

    Imports System.IO
    
    Public Class Form1
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim open As New OpenFileDialog
            open.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If open.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = open.FileName
            End If
            Me.clear()
            Me.lire(open.FileName)
        End Sub
    
        Private Sub clear()
            For i = 0 To 4000
               Dim TextBoxSelect As TextBox = DirectCast(Me.Controls.Find("TextBox" & i, True).FirstOrDefault(), TextBox)
               TextBoxSelect.Clear()
            Next
        End Sub
    
        Private Sub lire(wl As String)
            Dim textDeLignes() As String = File.ReadAllLines(wl)
            For i = 0 To 4000
                Dim TextBoxSelect As TextBox = DirectCast(Me.Controls.Find("TextBox" & i, True).FirstOrDefault(), TextBox)
                TextBoxSelect.Text = textDeLignes(i)
            Next
            MsgBox("Open completed!", MsgBoxStyle.Information)
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Dim save As New SaveFileDialog
            save.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If save.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox2.Text = save.FileName
            End If
            Me.ecrire(save.FileName)
        End Sub
    
        Private Sub ecrire(wr As String)
            Dim fermer As New StreamWriter(wr)
            For i = 0 To 4000
                Dim TextBoxSelect As TextBox = DirectCast(Me.Controls.Find("TextBox" & i, True).FirstOrDefault(), TextBox)
                fermer.WriteLine(TextBoxSelect.Text)
            Next
            fermer.Close()
            MsgBox("Save completed!", MsgBoxStyle.Information)
        End Sub
    
    End Class

    Bonne journée à tous.

    Popol85
    • Marqué comme réponse Popol85 mercredi 20 avril 2016 16:01
    mercredi 20 avril 2016 16:00

Toutes les réponses

  • Bonjour,

    As-tu déja fait un bout de code ? Si oui, peut-tu nous le montrer ?

    Cordialement,

    lundi 5 mai 2014 08:26
  • en tête après form1:

    Const mfileName As String = "vf5d61v.dll"

    Pour loader:

            If My.Computer.FileSystem.FileExists("vf5d61v.dll") Then
                Dim file As System.IO.StreamReader
                file = My.Computer.FileSystem. _
                OpenTextFileReader(mfileName)
                TextBox2.Text = file.ReadLine
                file.Close()
            End If

    et Pour enregistrer:

                If My.Computer.FileSystem.FileExists("vf5d61v.dll") Then
                    My.Computer.FileSystem.DeleteFile("vf5d61v.dll", FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently, FileIO.UICancelOption.DoNothing)
                    Dim file As System.IO.StreamWriter
                    My.Computer.FileSystem.WriteAllText("vf5d61v.dll", TextBox2.Text, True)
                Else
                    Dim file As System.IO.StreamWriter
                    My.Computer.FileSystem.WriteAllText("vf5d61v.dll", TextBox2.Text, True)
                End If


    • Modifié Popol85 lundi 5 mai 2014 09:26
    lundi 5 mai 2014 09:24
  • bonjour,

    voici en image :

    voici mes codes :

    Imports System.IO
    
    Public Class Form1
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim open As New OpenFileDialog
            open.Filter = "Fichier Texte|*.txt"
            If open.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox10.Text = open.FileName
            End If
            TextBox2.Clear()
            TextBox3.Clear()
            TextBox4.Clear()
            TextBox5.Clear()
            TextBox6.Clear()
            TextBox7.Clear()
            TextBox8.Clear()
            TextBox9.Clear()
            Dim textDeLignes() As String = File.ReadAllLines(open.FileName)
            TextBox2.Text = textDeLignes(0)
            TextBox3.Text = textDeLignes(1)
            TextBox4.Text = textDeLignes(2)
            TextBox5.Text = textDeLignes(3)
            TextBox6.Text = textDeLignes(4)
            TextBox7.Text = textDeLignes(5)
            TextBox8.Text = textDeLignes(6)
            TextBox9.Text = textDeLignes(7)
            MsgBox("Open completed!")
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Dim save As New SaveFileDialog
            save.Filter = "Fichier Texte|*.txt"
            If save.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = save.FileName
            End If
            Dim fermer As New StreamWriter(save.FileName)
            fermer.WriteLine(TextBox2.Text)
            fermer.WriteLine(TextBox3.Text)
            fermer.WriteLine(TextBox4.Text)
            fermer.WriteLine(TextBox5.Text)
            fermer.WriteLine(TextBox6.Text)
            fermer.WriteLine(TextBox7.Text)
            fermer.WriteLine(TextBox8.Text)
            fermer.WriteLine(TextBox9.Text)
            fermer.Close()
            MsgBox("Save completed!")
        End Sub
    End Class

    a+

    lundi 5 mai 2014 16:39
  • Un grand merci, mais il y a tu une méthode pour metre les (

    TextBox2.Clear
    TextBox2.Text = textDeLignes(0)
    fermer.WriteLine(TextBox2.Text)

    )

    en sub? Vue le nombre qui doit y avoir de textbox.

    Merci.

    lundi 5 mai 2014 18:27
  • Bonjour

     

    Vous connaissez le nombre des lignes?

    C'est le même toujours?

    Je vous propose ce bout de code générique. Vous devez ajouter un panel dans l'application. Dans ce cas j'utilise FlowLayoutPanel qui va arranger les TextBox sur l'écran.

    Et voici le  code pour ajouter les TextBox dans le Panel ::

           Dim textDeLignes() As String = File.ReadAllLines(open.FileName)
            Dim i As Integer = 1
            For Each y As String In textDeLignes
                If y = String.Empty Then
                    Continue For
                      'on elimine les lignes vides 
                End If
                Dim tb As New System.Windows.Forms.TextBox
                tb.Name = "TextBox" + i.ToString
                tb.Text = y
                FlowLayoutPanel1.Controls.Add(tb)
            Next
    

    El le code pour enregistrer le code :

            Dim fermer As New StreamWriter("d:\Temp\OutFile.txt")
    
            For Each ctrl As System.Windows.Forms.TextBox In FlowLayoutPanel1.Controls
                If (ctrl.GetType() Is GetType(System.Windows.Forms.TextBox)) Then
                    fermer.WriteLine(ctrl.Text)
    
                End If
            Next
            fermer.Close()


    Bien cordialement,

     

     


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mardi 6 mai 2014 06:26
  • Bonjour a vous, je ne comprend pas très bien ou le mettre et quoi effacer?
    mercredi 7 mai 2014 04:49
  • Bonjour

    Vous devez supprimer les TextBox et mettre un FlowLayoutPanel  en place.

    Sur le bouton ou vous ouvrez la fenêtre pour choisir le fichier, après avoir lu le contenu de fichier  vous mettez le code qui va générer les TextBox.

    Le code qui fait l’enregistrement sera évidemment sur un bouton Enregistrer !

    Bien cordialement, 


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 7 mai 2014 05:40
  • Bonjour,

    Un tabpage + un flowlayout panel peut être utiliser?

    et pour les label qui dit se qui doit être marquer dans chaque textbox?

    je comprend pas bien, vous avez des images?


    • Modifié Popol85 jeudi 8 mai 2014 02:57
    mercredi 7 mai 2014 15:57
  • bonjour,

    Oui, vous pouvez utiliser TabControl avec flowlayout panel.

    mercredi 7 mai 2014 16:29
  • j'ai réussi a tester le code, mais le résulta n'est pas se que je recherche, je ne veut pas que de nouvel textbox se crée, mes textbox son encrer avec des label

    EX: nom: textbox1.text etc.

    je désire pouvoir enregistrer tout les textbox et qu'à l'ouverture du fichier enregistrer le monde peuvent retrouver se qui a été marquer dans les même textbox.

    zorro591 tu as bien interprété mes désires avec ton code, mais il en vient long de code pour chaque textbox.

    Merci.
    jeudi 8 mai 2014 03:11
  • Pouvez-vous nous donner des détails ?
    Par exemple "Nom" dans  le label= comment vous le recouperez? Je pense qu'on doit l'enregistrer dans le fichier aussi, pour avoir  la paire Nom => valeur.
    A la limite vous pouvez utiliser un DataGridView avec deux colonnes. Une ReadOnly pour le Nom, et une éditable pour la valeur.
    Le problème en effet est comment vous obtenez la liste des noms. Apres, sera facile de créer un Label et un TextBox pour chaque ‘un et les écrire dans le fichier.

    Bien cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 8 mai 2014 06:19
  • je tente de produire de quoi de semblable (http://img360.imageshack.us/img360/5030/fithoslussecxn2.jpg) mais en application, pour faire moins de gribouillis sur une feuille et être plus écolo.

    Merci. :)

    jeudi 8 mai 2014 08:40
  • Dans ce cas, je dirais de utiliser un UserControl.

    Avec click droit sir le projet\Ajouter\UserControl.

    Vous ajoutez simplement un Label et un TextBox dans le UserControl comme dans l'image :

    Après, on doit utilizer le UserControl  :

            Dim i As Integer = 1
            For Each y As String In textDeLignes
                If y = String.Empty Then
                    Continue For
                End If
                Dim tb As New UserControl
                tb.TextBox1.Text = ""
                tb.Label1.Text = "TheLabelFromList " + i.ToString()
                 FlowLayoutPanel1.Controls.Add(tb)
            Next
    
    
    'ecriture dans le fichier 
            Dim fermer As New StreamWriter("d:\Temp\OutFile.txt")
    
            For Each ctrl As UserControl In FlowLayoutPanel1.Controls
                If (ctrl.GetType() Is GetType(VB2App.UserControl)) Then
                    fermer.WriteLine(ctrl.Label1.Text + ":" + ctrl.TextBox1.Text)
    
                End If
            Next
            fermer.Close()
    Bien cordialement,

    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 8 mai 2014 09:11
  • bonjour,

    voici en simplifier :

    les codes :

    Imports System.IO
    
    Public Class Form1
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim open As New OpenFileDialog
            open.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If open.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = open.FileName
            End If
            Me.clear()
            Me.lire(open.FileName)
        End Sub
    
        Private Sub clear()
            TextBox3.Clear()
            TextBox4.Clear()
            TextBox5.Clear()
        End Sub
    
        Private Sub lire(wl As String)
            Dim textDeLignes() As String = File.ReadAllLines(wl)
            TextBox3.Text = textDeLignes(0)
            TextBox4.Text = textDeLignes(1)
            TextBox5.Text = textDeLignes(2)
            MsgBox("Open completed!", MsgBoxStyle.Information)
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Dim save As New SaveFileDialog
            save.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If save.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox2.Text = save.FileName
            End If
            Me.ecrire(save.FileName)
        End Sub
    
        Private Sub ecrire(wr As String)
            Dim fermer As New StreamWriter(wr)
            fermer.WriteLine(TextBox3.Text)
            fermer.WriteLine(TextBox4.Text)
            fermer.WriteLine(TextBox5.Text)
            fermer.Close()
            MsgBox("Save completed!", MsgBoxStyle.Information)
        End Sub
    
    End Class
    Bien cordialement,

    • Marqué comme réponse Popol85 jeudi 8 mai 2014 23:28
    jeudi 8 mai 2014 12:10
  • Merci de m'avoir offert quelque solution, ça ma été d'une grand aide.

    À une prochaine :)

    jeudi 8 mai 2014 23:31
  • Bonjour, je sais que le topic date, mais j'ai trouver une solution qui simplifie la tache en quelque ligne si vous avez 4000 ligne a faire.

    Imports System.IO
    
    Public Class Form1
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim open As New OpenFileDialog
            open.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If open.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox1.Text = open.FileName
            End If
            Me.clear()
            Me.lire(open.FileName)
        End Sub
    
        Private Sub clear()
            For i = 0 To 4000
               Dim TextBoxSelect As TextBox = DirectCast(Me.Controls.Find("TextBox" & i, True).FirstOrDefault(), TextBox)
               TextBoxSelect.Clear()
            Next
        End Sub
    
        Private Sub lire(wl As String)
            Dim textDeLignes() As String = File.ReadAllLines(wl)
            For i = 0 To 4000
                Dim TextBoxSelect As TextBox = DirectCast(Me.Controls.Find("TextBox" & i, True).FirstOrDefault(), TextBox)
                TextBoxSelect.Text = textDeLignes(i)
            Next
            MsgBox("Open completed!", MsgBoxStyle.Information)
        End Sub
    
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            Dim save As New SaveFileDialog
            save.Filter = "Fichier Texte (*.txt)|*.txt| Tous Les Fichiers(*.*)|*.*"
            If save.ShowDialog = Windows.Forms.DialogResult.OK Then
                TextBox2.Text = save.FileName
            End If
            Me.ecrire(save.FileName)
        End Sub
    
        Private Sub ecrire(wr As String)
            Dim fermer As New StreamWriter(wr)
            For i = 0 To 4000
                Dim TextBoxSelect As TextBox = DirectCast(Me.Controls.Find("TextBox" & i, True).FirstOrDefault(), TextBox)
                fermer.WriteLine(TextBoxSelect.Text)
            Next
            fermer.Close()
            MsgBox("Save completed!", MsgBoxStyle.Information)
        End Sub
    
    End Class

    Bonne journée à tous.

    Popol85
    • Marqué comme réponse Popol85 mercredi 20 avril 2016 16:01
    mercredi 20 avril 2016 16:00