[vb.net] Lire et écrire datagridview fichier

Fermé
HarD-KinG - 1 févr. 2012 à 23:15
 Utilisateur anonyme - 2 févr. 2012 à 21:43
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

A voir également:

2 réponses

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
Utilisateur anonyme
2 févr. 2012 à 19:30
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
Utilisateur anonyme
2 févr. 2012 à 21:43
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