Sauvegarder une "Structure" comportant divers types de variables
Bonjour à tous,
J'ai une "Structure" composée de plusieurs Champs que je désire enregistrer dans un fichier sur disque. Tout fonctionne bien jusqu'au moment de sauver.
Les données à sauver sont dans un DataGridView (DGV1)
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
Structure StructureType
Public Contrôle As String
Public No_Dossier As UInteger
Public No_Table As UInteger
Public No_Champ As Byte
<VBFixedString(20)> Public NomChamp As String
Public TypeDeVariable As Byte
Public NbreCar As Byte
Public Position As UShort
<VBFixedString(15)> Public Format As String
Public Table As UInteger
<VBFixedArray(3)> Public Champ() As Byte
<VBFixedString(15)> Public NomContrôle As String
<VBFixedString(15)> Public Énum As String
Public Obligatoire As Boolean
Public Crypté As Boolean
Public NoOrdreChampID As Byte
Public Consultation As UInteger
Public Modification As UInteger
End Structure
Public Ossature As StructureType
Private Sub InitStructure()
Dim Fichier As String = ""
Dim i As Integer
Dim No_Fichier As Integer = 1
Fichier = Trim(CheminClient) & "\" & "T001.dat"
FileOpen(No_Fichier, Fichier, OpenMode.Binary)
For i = 1 To 20
'Sauvegarde de l'ossature de chacun des champs du fichier
Ossature.NomChamp = Space(20)
Ossature.Format = Space(15)
Ossature.NomContrôle = Space(15)
Ossature.Énum = Space(15)
Ossature.Contrôle = "*"
Ossature.No_Dossier = i
Ossature.No_Table = 1
Ossature.No_Champ = DGV1.Item(3, i).Value
Ossature.NomChamp = DGV1.Item(4, i).Value
Ossature.TypeDeVariable = DGV1.Item(5, i).Value
Ossature.NbreCar = DGV1.Item(6, i).Value
Ossature.Position = DGV1.Item(7, i).Value
Ossature.Format = DGV1.Item(8, i).Value
Ossature.Table = DGV1.Item(9, i).Value
ReDim Ossature.Champ(3)
Ossature.Champ(1) = DGV1.Item(10, i).Value
Ossature.Champ(2) = DGV1.Item(11, i).Value
Ossature.Champ(3) = DGV1.Item(12, i).Value
Ossature.NomContrôle = DGV1.Item(13, i).Value
Ossature.Énum = DGV1.Item(14, i).Value
Ossature.Obligatoire = DGV1.Item(15, i).Value
Ossature.Crypté = DGV1.Item(16, i).Value
Ossature.NoOrdreChampID = DGV1.Item(17, i).Value
Ossature.Consultation = DGV1.Item(18, i).Value
Ossature.Modification = DGV1.Item(19, i).Value
FilePut(No_Fichier, Ossature) 'C'est cette ligne qui bogue
Next i
End Sub |
Le message d'erreur est le suivant:
L'E/S de fichier d'une structure avec un champ 'No_Dossier' de type 'UInt32' n'est pas valide.
Merci d'avance pour vos conseils.