Optimiser l'enregistrement de donnée

Résolu
luca62 Messages postés 56 Date d'inscription dimanche 26 décembre 2004 Statut Membre Dernière intervention 4 août 2005 - 18 juil. 2005 à 16:17
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 18 juil. 2005 à 20:24
J'ai créé un tableau avec des nombres, j'aimerais qu'ils s'enregistre sur un fichier.dat, et les uns après les autres => 123456789 et non


1


2


3


Car pour la 2ième solution, après plusieurs encodage, la mémoire est pleine. J'ai donc créé un nouveau module et j'ai nommé ma variable publictabl(5000,12)
et le 13ième chiffres soit une suite de 72 chiffres afin de ne pas avoir publictabl(5000,72). Voilà comment j'ouvre les 12première lignes et j'aimerais savoir comment je peux ouvrir la 13ième qui contient donc 72nombres et comment les classer dans les tabl(num_fiche,13 ...puis 14....). Les nombres peuvent contenir un chiffre ou deux, je sais pas si ça a de l'importance ?

Open stFichier For Input As #1

num_fiche = 0

Do While Not EOF(1)
num_fiche = num_fiche + 1
Line Input #1, tabl(num_fiche, 1)
Line Input #1, tabl(num_fiche, 2)
Line Input #1, tabl(num_fiche, 3)
Line Input #1, tabl(num_fiche, 4)
Line Input #1, tabl(num_fiche, 5)
Line Input #1, tabl(num_fiche, 6)
Line Input #1, tabl(num_fiche, 7)
Line Input #1, tabl(num_fiche, 8)
Line Input #1, tabl(num_fiche, 9)
Line Input #1, tabl(num_fiche, 10)
Line Input #1, tabl(num_fiche, 11)
Line Input #1, tabl(num_fiche, 12)
???? Pour le 13ième ?????

MERCI D AVANCE !! Luca62

2 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
18 juil. 2005 à 20:24
Salut, je te propose ça :

D'abord, pour l'enreg dans un fichier :

Sub ecriture()
Dim i As Integer
Dim s As String


Open "c:\temp\test.dat" For Output As #1


'1 enreg
For i = 1 To 9 s IIf(s "", i, s & ";" & i)
Next

Print #1, s

s = ""

'1 autre enreg
For i = 10 To 15 s IIf(s "", i, s & ";" & i)
Next

Print #1, s

Close #1


End Sub

De cette façon, tu auras des enregs de longueur non fixe avec tes valeurs séparées par des ';'.

Pour la lecture :

' création d'un type de table
Private Type tableau
n() As String
End Type

Dim t(2) As tableau ' une table de tables

Sub lecture()
Dim num_fiche As Integer
Dim s As String


num_fiche = 0


Open stFichier For Input As #1


Do While Not EOF(1)
num_fiche = num_fiche + 1
Line Input #1, s
t(num_fiche).n = Split(s, ";")
Loop


Close #1


End Sub

Pour l'interro de ton tableau (limité dans l'exemple à 2 enregs) :

for i = 1 to ubound(t(1).n)
msgbox t(1).n(i)
next

Bon, pour le reste et les adaptations, je te laisse réfléchir.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
18 juil. 2005 à 19:27
Bonjour,

Pourraîs tu mettre ton code complet, parceque là, impossible de faire d'essais.

jpleroisse
0
Rejoignez-nous