sslen
-
Modifié le 20 mai 2018 à 17:47
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023
-
21 mai 2018 à 14:33
bonjour,
mon code ne fonctionne pas et je ne trouve pas mon erreur.est-il possible que qqun me montre mon erreur? Merci d' avance.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class Form1
<Serializable()> _
Public contacttable As DataGridView
End Class
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click
Dim txt As String
Dim Col, Roows As Integer
Dim text As New List(Of DataGridView)
Dim f As IO.FileStream = File.Create("enregistreContact.bin")
Dim contacttable As New BinaryFormatter
----------------------------------------------------------------------------------------------------------------Je recupere mon tableau
For Roows = 0 To DataGridView1.RowCount - 1
For Col = 0 To 4
txt = DataGridView1.Item(Col, Roows).Value
Next
Next
-----------------------------------------------------------------------------------------------------------Je sauvegarde
Try
contacttable.Serialize(f, text)
---------------------------------------------------------------------------------------------------------Exception
Catch File As Exception
MsgBox("You must write a text!")
End Try
----------------------------------------------------------------------------------------------------------Je ferme la sauvegarde
f.Close()
End sub
End Sub
sslen
Messages postés2Date d'inscriptiondimanche 20 mai 2018StatutMembreDernière intervention21 mai 2018 20 mai 2018 à 18:32
merci pour la réponse mais cela ne marche pas. je pense que c' est dans la recuperation des lignes et colonnes que je dois faire une erreur.
cdt
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class Form1
<Serializable()> _
Public contact As DataGridView
End Class
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click
Dim txt As String
Dim Col, Rows As Integer
Dim text As New List(Of string)
Dim f As IO.FileStream = File.Create("enregistreContact.bin")
Dim contacttable As New BinaryFormatter
----------------------------------------------------------------------------------------------------------------Je recupere mon tableau
For Rows = 0 To DataGridView1.RowCount - 1
For Col = 0 To 4
txt = DataGridView1.Item(Col, Rows).Value
Next
Next
-----------------------------------------------------------------------------------------------------------Je sauvegarde
Try
contacttable.Serialize(f, text)
---------------------------------------------------------------------------------------------------------Exception
Catch File As Exception
MsgBox("You must write a text!")
End Try
----------------------------------------------------------------------------------------------------------Je ferme la sauvegarde
f.Close()
End sub
End Class
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 20 mai 2018 à 21:18
Bonsoir
C'est trop dur d'utiliser les balises de code !
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class Form1
<Serializable()> _
Public contact As DataGridView
End Class ' il est en trop celui-là
-
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click
Dim txt As String
Dim Col, Rows As Integer
Dim text As New List(Of string)
Dim f As IO.FileStream = File.Create("enregistreContact.bin")
Dim contacttable As New BinaryFormatter
'Je recupere mon tableau
For Rows = 0 To DataGridView1.RowCount - 1
For Col = 0 To 4
txt = DataGridView1.Item(Col, Rows).Value
Next
Next
'Je sauvegarde
Try
contacttable.Serialize(f, text)
'Exception
Catch File As Exception
MsgBox("You must write a text!")
End Try
'Je ferme la sauvegarde
f.Close()
End sub
End Class
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 20 mai 2018 à 21:46
Et aussi "ca ne marche pas" n'est pas parlant.
La sauvegarde se fait-elle ?
Est-ce les bonnes valeurs ?
Où fait tu l'écriture sur le FileStream de ton Binaryformatter ?
Place un point d'arrêt au niveau du Try pour vérifier les valeurs de la List(of String)
sslen
Messages postés2Date d'inscriptiondimanche 20 mai 2018StatutMembreDernière intervention21 mai 2018 21 mai 2018 à 13:45
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Class Form1
<Serializable()> _
Public contact As DataGridView
-
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click
Dim txt As String
Dim Col, Rows As Integer
Dim text As New List(Of string)
Dim f As IO.FileStream = File.Create("enregistreContact.bin")
Dim contacttable As New BinaryFormatter
'Je recupere mon tableau
For Rows = 0 To DataGridView1.RowCount - 1
For Col = 0 To 4
txt = DataGridView1.Item(Col, Rows).Value
Next
Next
'Je sauvegarde
Try
contacttable.Serialize(f, text)
'Exception
Catch File As Exception
MsgBox("You must write a text!")
End Try
'Je ferme la sauvegarde
f.Close()
End sub
End Class
Merci pour tes commentaire.
1-Pour les balises, j'ai compris(je suis novice dans le domaine)
2-le fichier est crée normalement mais il est vide donc je pense que le code de récupération des données est faux.
Merci d' avance.
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 21 mai 2018 à 14:33
bonjour !
Où fait tu l'écriture sur le FileStream de ton Binaryformatter ?
normalement tu dois le faire après
contacttable.Serialize(f, text)
dans le Try
Tu as bien sérialisé contacttable mais tu ne l'as pas écrit dans le Io.FileStream : donc rien n'est écrit dans le fichier
Place un point d'arrêt avant le Try pour vérifier les valeurs de la List(of String)
Essaie ce code
Private Sub SAVE_Button_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SAVE_Button.Click
Dim Col, Row As Integer
Dim text As New List(Of string)
Dim f As IO.FileStream = File.Create("enregistreContact.bin")
Dim contacttable As New BinaryFormatter
'Je recupere mon tableau
For Row = 0 To DataGridView1.RowCount - 1
For Col = 0 To 4
txt.Add(DataGridView1.Item(Col, Row).Value)
Next
Next
' test pour vérifier si toute la DataGridview est prise en compte
if txt.count <> DataGridView1.RowCount * 5 then stop ' place le point d'arrêt ici
'Je sauvegarde
Try
contacttable.Serialize(f, text)
' ici il faut écrire contacttable dans le fileStream
'Exception
Catch File As Exception
MsgBox("You must write a text!")
End Try
'Je ferme la sauvegarde
f.Close()
End sub