Visualisation de structures de données sur un fichier

hela_bouks Messages postés 18 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 2 janvier 2008 - 7 avril 2006 à 10:31
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 10 avril 2006 à 12:05
Salut,
la dernière fois ou j'ai posé mon problème, les réponses que j'ai reçues m'ont vraiment super aidées, c'est pour cela que je retente ma chance.
Alors, mon problème est le suivant :
J'ai une structure de données (Un tableau d'une vingtaine d'éléments ou chaque élément est un tableau de 16 éléments ou chaque élément est un tableau de 3 éléments).

Public Type produits
mach As Byte
td_eff As Double
tf_eff As Double

End Type

Public Type individu
liste(nbre_op) As produits
End Type

Public population(nbre_pop) As individu

J'effectue des modifications sur cette structure de données.
Donc ce que je cherche c'est d'afficher dans un fichier la structure initiale et à chaque fois enregistrer par la suite la structure d'aprés pour pouvoir comparer mes résultats.

En sachant que je suis habituée à utiliser les bases de données et que je ne sais pas du tout comment gerer les fichiers.

J'espère que ma question est claire.
Je vous remercie d'avance pour les éventuelles réponses.

1 réponse

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
10 avril 2006 à 12:05
Salut 703407 hela_bouks,

si tu cherches à sérialiser le contenu de ton tableau, copies et colles ce code dans un formulaire quelconque (d'où ton tableau population est visible bien sûr), et ajoutes 2 boutons de commandes (Command1 et Command2).
Cette sérialisation créera un fichier binaire (très compact, mais surtout, pas exploitable en ASCII), et ne devrais te permettre d'effectuer une comparaison qu'en code (ou alors avec des outils externes comme UltraEdit).

Si tu souhaites obtenir un fichier au format Texte par la sérialisation, postes un nouveau message dans ce même sujet pour le dire (la technique est différente, un peu plus compliquée, mais rien de bien grave).

Private Sub Command1_Click()
Dim intNoFile As Integer ' n° de fichier
Dim i As Integer ' indice de parcours de population()
'récupère un n° de fichier valide
intNoFile = FreeFile
'ouvre le fichier en mode aléatoire, en précisant la taille d'un enregistrement
'(ne pas utiliser Binary, même si c'est ce que l'on veut)
Open "E:\...\hela_bouks\structs.dat" _
For Random As #intNoFile Len = Len(population(0)) + (2 + 8 * 1)

'pour chaque élément de population
For i = 0 To UBound(population)
'écrit un élément dans un enregistrement
Put #intNoFile, i + 1, population(i)
'élément suivant
Next i

'ferme le fichier
Close #intNoFile
End Sub


Private Sub Command2_Click()
Dim intNoFile As Integer ' n° de fichier
Dim i As Integer ' indice de parcours de population()
'récupère un n° de fichier valide
intNoFile = FreeFile
'vide le tableau population, pour prouver que la sérialisation a fonctionné
Erase population
'ouvre le fichier en mode aléatoire, en précisant la taille d'un enregistrement
'(ne pas utiliser Binary , même si c'est ce que l'on veut)
Open "E:\...\hela_bouks\structs.dat" _
For Random As #intNoFile Len = Len(population(0)) + (2 + 8 * 1)

i = 0
'tant que le fichier n'est pas terminé
While Not EOF(intNoFile)
'écrit un enregistrement dans un élément
Get #intNoFile, i + 1, population(i)
'incrémente l'indice de parcours
i = i + 1
'élément suivant
Wend

'ferme le fichier
Close #intNoFile
End Sub

: un tableau dynamique de type défini par l'utilisateur (écrit avec l'instruction Put) est préfixé
NumberOfDimensions, ici, une seule dimension, donc 2 + 8 * 1.

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
Rejoignez-nous