[vb.net] Lire et écrire datagridview fichier

Bonsoir,
Je viens à vous car après 3 jours de recherche je n'arrive toujours pas à faire ce que je veux faire.
Mon but est de pouvoir récupérer les entrées faite par l'utilisateur dans le datagridview grâce à un bouton et de les écrire dans un simple fichier, puis de pouvoir récupérer ces données grâce à un autre boutons qui les afficherais dans le datagriedview en question (à la manière du "enregistrer sous ..." "ouvrir").
Suite à cela j'aimerai pouvoir faire des calcules avec les valeurs du tableau et les afficher dans une colonne.
Pouvez vous me renseigner s'il vous plait, je suis dans le flou total ! Merci et bonne soirée

2 réponses

  1. Bonjour,

    Il existe plusieurs façon ...

    Voici un exemple brut :

    Pour les colonnes du DGV tu crée une [ Entité ]

    Ensuite tu crée une classe Liste de ce type d'entité.

    Et pour terminer, tu affecte cette liste à un objet BindingSource,

    il ne reste qu'a lire et écrire dans la liste !

    Ex.:

    La classe Entité
    Public Class Entite   
    
     Private zNom As String = String.Empty   
     Private zPrenom As String = String.Empty   
    
     Public Property Nom() As String   
      Get   
       Return Me.zNom   
      End Get   
      Set(ByVal value As String)   
       Me.zNom = value   
      End Set   
     End Property   
    
     Public Property Prenom() As String   
      Get   
       Return Me.zPrenom   
      End Get   
      Set(ByVal value As String)   
       Me.zPrenom = value   
      End Set   
     End Property   
    
     Public Sub New()   
    
     End Sub   
    
    End Class   
    


    La classe Liste
    Public Class CollectionEnt   
     Inherits List(Of Entite)   
    
     Public Sub New()   
    
     End Sub   
    End Class   
    


    Dans le formulaire :

    <ocde>
    Private Sub Lire()

    Dim LaListe As List(Of Entite) = New List(Of Entite)

    LaListe = LectureFichier ' Voir second message

    Me.bsListe.DataSource = GetType(Entite)
    Me.bsListe.DataSource = LaListe
    Me.DGV_Donnees.DataSource = bsListe

    End Sub

    Private Sub Ecrire()

    EcrireFichier ' Voir second message

    End Sub
    </code>

    Cdt

    Lupin
    0
    1. Bonjour,

      Suite :

      Voici le code pour l'appel à le lecture et l'écriture :

      Private Function LectureFichier() As List(Of Entite)
      
      	Dim Chemin As String = Application.ExecutablePath
      	Dim Position As Int32 = Chemin.LastIndexOf("\")
      	Dim Dossier As String = Chemin.Substring(0, (Position + 1))
      
      	Dim LeFichier As StreamReader = File.OpenText(Dossier & "spitab.txt")
      
      	Dim LaListe As New CollectionEnt
      	Dim EntY As Entite
      	Dim Chaine As String = String.Empty
      
      	Do Until LeFichier.Peek = -1
      		Chaine = LeFichier.ReadLine
      		EntY = New Entite
      		EntY.Prenom = Chaine.Substring(0, Chaine.LastIndexOf(" ")).Trim
      		EntY.Nom = Chaine.Substring(Chaine.LastIndexOf(" ")).Trim
      		LaListe.Add(EntY)
      	Loop
      
      	LeFichier.Close()
      
      	Return LaListe
      
      End Function
      
      Public Sub EcrireFichier()
      
      	Dim Chemin As String = Application.ExecutablePath
      	Dim Position As Int32 = Chemin.LastIndexOf("\")
      	Dim Dossier As String = Chemin.Substring(0, (Position + 1))
      	Dim NomFichier As String = Dossier & "monfichier.txt"
      
      	Dim LeFichier As New StreamWriter(NomFichier, True)
      
      	For Each EntX As Entite In bsListe
      		LeFichier.WriteLine(String.Format("{0}{1}{2}",EntX.Prenom," ",EntX.Nom)
      	Next
      
      	LeFichier.Close()
      
      End Sub
      


      Cdt

      Lupin
      0
      1. re:

        J'ai fait une petite erreur :

        Dim LeFichier As StreamReader = File.OpenText(Dossier & "spitab.txt")

        devrait se lire :

        Dim LeFichier As StreamReader = File.OpenText(Dossier & "monfichier.txt")

        Lupin
        0