Bonjour les forumiteux,
Après une absence trop longue de ce forum, je reprends mes travaux en VB sur une problèmatique liée à des manipulations de lecture-écriture sur des fichiers txt.
Après quelques recherches, je suis parvenu à obtenir un script fonctionnel pour lire les données d'un fichier structuré, les stocker dans les cellules, les écrire dans un nouveau fichier txt.
Structure
Script lecture
Script écriture
Mon fichier txt dispose d'une première ligne d'en-tête et les lignes suivantes sont des lignes de détails (correspondant à la structure définie dans mon script).
De ce fait, le traitement devrait être différent mais je ne parviens pas à trouver la manière d'indiquer dans le script que la ligne 1 doit être traiter sur un modèle et la ligne 2 (et éventuellement les suivantes) sur un autre modèle.
Merci pour votre aide.
Dieu08.
Après une absence trop longue de ce forum, je reprends mes travaux en VB sur une problèmatique liée à des manipulations de lecture-écriture sur des fichiers txt.
Après quelques recherches, je suis parvenu à obtenir un script fonctionnel pour lire les données d'un fichier structuré, les stocker dans les cellules, les écrire dans un nouveau fichier txt.
Structure
VB:
Public nomfich1 As String
Type interface
'tronc commun
int1 As String * 8
int2 As String * 8
int3 As String * 8
int4 As String * 3
int5 As String * 6
int6 As String * 9
int7 As String * 2
'détails mouvements
int8 As String * 1
int9 As String * 1
int10 As String * 1
End Type
Script lecture
VB:
intFic2 = FreeFile()
NbLigne = 1
Open nomfich1 For Binary As #intFic2 Len = Len(MyInterface)
Do While Not EOF(1)
' lecture fichier et repart dans les variables
Get #intFic2, , MyInterface
Cells(NbLigne, 1) = MyInterface.int1
Cells(NbLigne, 2) = MyInterface.int2
Cells(NbLigne, 3) = MyInterface.int3
Cells(NbLigne, 4) = MyInterface.int4
Cells(NbLigne, 5) = MyInterface.int5
Cells(NbLigne, 6) = MyInterface.int6
Cells(NbLigne, 7) = MyInterface.int7
Cells(NbLigne, 8) = MyInterface.int8
Cells(NbLigne, 9) = MyInterface.int9
Cells(NbLigne, 10) = MyInterface.int10
NbLigne = NbLigne + 1
Loop
Close #intFic2
Script écriture
VB:
For intFic = 1 To nbcount0
Open "infodb_test.dat" For Random As intFic Len = Len(MyInterface)
With MyInterface
.int1 = Cells(intFic, 1)
.int2 = Cells(intFic, 2)
.int3 = Cells(intFic, 3)
.int4 = Cells(intFic, 4)
.int5 = Cells(intFic, 5)
.int6 = Cells(intFic, 6)
.int7 = Cells(intFic, 7)
.int8 = Cells(intFic, 8)
.int9 = Cells(intFic, 9)
.int10 = Cells(intFic, 10)
End With
' compte le nombre d'enregistrements
intNum = LOF(intFic) / Len(MyInterface)
Put intFic, intNum + 1, MyInterface
Close #1
Next intFic
Mon fichier txt dispose d'une première ligne d'en-tête et les lignes suivantes sont des lignes de détails (correspondant à la structure définie dans mon script).
De ce fait, le traitement devrait être différent mais je ne parviens pas à trouver la manière d'indiquer dans le script que la ligne 1 doit être traiter sur un modèle et la ligne 2 (et éventuellement les suivantes) sur un autre modèle.
Merci pour votre aide.
Dieu08.