Je dois alimenter une Base de donn=E9es =E0 partir d'un fichier texte.
Mon fichier en entr=E9e contient des codes sur les 4 premiers
caract=E8res puis les caract=E8res qui suivent sont fonction de la valeur
du code et bien s=FBr, selon la valeur du code, la structure des
donn=E9es n'est pas la m=EAme.
Exemple :
0000xxxxttttttttrrr
1111yyyyyyypp
0000qqqqaaaaaaaauuu
2222sssseee
Donc si mon code est 0000, j'ai une premi=E8re donn=E9e sur 4 caract=E8res
puis une autre sur 8 et enfin une troisi=E8me sur 3
Si mon code est 1111, j'ai une premi=E8re donn=E9e sur 7 et une seconde
sur 2.
L'objectif de mon programme, c'est de cr=E9er un fichier en sortie qui
contienne une structure homog=E8ne.
0000xxxxtttttttrrr
1111 yyyyyyypp
0000qqqqaaaaaaaauuu
2222ssss ee
Avec un tel fichier, il est tr=E8s facile d'alimenter une base de
donn=E9e.
Je pensais concevoir un programme qui utilise le principe des Close
Copy du COBOL pour r=E9soudre simplement mon pb mais visible =E7a n'est
pas possible en VB.
Quelqu'un aurait-il une id=E9e autre qu'une succesion de Mid(chaine, x,
y) ?
Cherche du côté des types de données utilisateur. Dans MSDN, il faut chercher Type dans l'index, si tu le cherches dans le sommaire tu es noyé dans les hors sujet. Après tu affiches l'instruction Type.
Exemple :
Private Type EnrA Z1 As String * 4 Z2 As String * 4 Z3 As String * 8 Z4 As String * 3 End Type
Dim Ligne1 As EnrA
Select Case Left$(Ligne, 4) Case "0000" Ligne1 = Ligne 'initialisation
Ligne1.Z1 '= code de type d'enregistrement Ligne1.Z2 '= premier champ utile Ligne2.Z3 '= champ suivant '... Case "1111" '... ________________________________________________ a écrit, le 26/10/2005 13:17 :
Bonjour à tous,
Je dois alimenter une Base de données à partir d'un fichier texte. Mon fichier en entrée contient des codes sur les 4 premiers caractères puis les caractères qui suivent sont fonction de la valeur du code et bien sûr, selon la valeur du code, la structure des données n'est pas la même.
Exemple : 0000xxxxttttttttrrr 1111yyyyyyypp 0000qqqqaaaaaaaauuu 2222sssseee Donc si mon code est 0000, j'ai une première donnée sur 4 caractères puis une autre sur 8 et enfin une troisième sur 3 Si mon code est 1111, j'ai une première donnée sur 7 et une seconde sur 2.
L'objectif de mon programme, c'est de créer un fichier en sortie qui contienne une structure homogène. 0000xxxxtttttttrrr 1111 yyyyyyypp 0000qqqqaaaaaaaauuu 2222ssss ee
Avec un tel fichier, il est très facile d'alimenter une base de donnée.
Je pensais concevoir un programme qui utilise le principe des Close Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est pas possible en VB. Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x, y) ?
Merci d'avance
Bonjour,
Cherche du côté des types de données utilisateur. Dans MSDN, il faut
chercher Type dans l'index, si tu le cherches dans le sommaire tu es
noyé dans les hors sujet. Après tu affiches l'instruction Type.
Exemple :
Private Type EnrA
Z1 As String * 4
Z2 As String * 4
Z3 As String * 8
Z4 As String * 3
End Type
Dim Ligne1 As EnrA
Select Case Left$(Ligne, 4)
Case "0000"
Ligne1 = Ligne 'initialisation
Ligne1.Z1 '= code de type d'enregistrement
Ligne1.Z2 '= premier champ utile
Ligne2.Z3 '= champ suivant
'...
Case "1111"
'...
________________________________________________
fleguen@gmail.com a écrit, le 26/10/2005 13:17 :
Bonjour à tous,
Je dois alimenter une Base de données à partir d'un fichier texte.
Mon fichier en entrée contient des codes sur les 4 premiers
caractères puis les caractères qui suivent sont fonction de la valeur
du code et bien sûr, selon la valeur du code, la structure des
données n'est pas la même.
Exemple :
0000xxxxttttttttrrr
1111yyyyyyypp
0000qqqqaaaaaaaauuu
2222sssseee
Donc si mon code est 0000, j'ai une première donnée sur 4 caractères
puis une autre sur 8 et enfin une troisième sur 3
Si mon code est 1111, j'ai une première donnée sur 7 et une seconde
sur 2.
L'objectif de mon programme, c'est de créer un fichier en sortie qui
contienne une structure homogène.
0000xxxxtttttttrrr
1111 yyyyyyypp
0000qqqqaaaaaaaauuu
2222ssss ee
Avec un tel fichier, il est très facile d'alimenter une base de
donnée.
Je pensais concevoir un programme qui utilise le principe des Close
Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est
pas possible en VB.
Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x,
y) ?
Cherche du côté des types de données utilisateur. Dans MSDN, il faut chercher Type dans l'index, si tu le cherches dans le sommaire tu es noyé dans les hors sujet. Après tu affiches l'instruction Type.
Exemple :
Private Type EnrA Z1 As String * 4 Z2 As String * 4 Z3 As String * 8 Z4 As String * 3 End Type
Dim Ligne1 As EnrA
Select Case Left$(Ligne, 4) Case "0000" Ligne1 = Ligne 'initialisation
Ligne1.Z1 '= code de type d'enregistrement Ligne1.Z2 '= premier champ utile Ligne2.Z3 '= champ suivant '... Case "1111" '... ________________________________________________ a écrit, le 26/10/2005 13:17 :
Bonjour à tous,
Je dois alimenter une Base de données à partir d'un fichier texte. Mon fichier en entrée contient des codes sur les 4 premiers caractères puis les caractères qui suivent sont fonction de la valeur du code et bien sûr, selon la valeur du code, la structure des données n'est pas la même.
Exemple : 0000xxxxttttttttrrr 1111yyyyyyypp 0000qqqqaaaaaaaauuu 2222sssseee Donc si mon code est 0000, j'ai une première donnée sur 4 caractères puis une autre sur 8 et enfin une troisième sur 3 Si mon code est 1111, j'ai une première donnée sur 7 et une seconde sur 2.
L'objectif de mon programme, c'est de créer un fichier en sortie qui contienne une structure homogène. 0000xxxxtttttttrrr 1111 yyyyyyypp 0000qqqqaaaaaaaauuu 2222ssss ee
Avec un tel fichier, il est très facile d'alimenter une base de donnée.
Je pensais concevoir un programme qui utilise le principe des Close Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est pas possible en VB. Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x, y) ?
Merci d'avance
Tschuß
Je suis d'accord sur le principe mais avec ce genre d'écriture, je n'arrive pas à utiliser le type que j'ai défini pour enregistrer mon fichier en sortie. L'écriture Print #2, EnrA ne fonctionne pas.
Je suis d'accord sur le principe mais avec ce genre d'écriture, je
n'arrive pas à utiliser le type que j'ai défini pour enregistrer mon
fichier en sortie. L'écriture Print #2, EnrA ne fonctionne pas.
Je suis d'accord sur le principe mais avec ce genre d'écriture, je n'arrive pas à utiliser le type que j'ai défini pour enregistrer mon fichier en sortie. L'écriture Print #2, EnrA ne fonctionne pas.
patrick
Bonjour, L'écriture Print #2, EnrA ne fonctionne pas.
si tu utilises le principe de Gloops : Print #2, Ligne1 comme instruction EnrA est le Type
@+
patrick
"Gloops" a écrit dans le message news: 435f6f42$0$7843$
Bonjour,
Cherche du côté des types de données utilisateur. Dans MSDN, il faut chercher Type dans l'index, si tu le cherches dans le sommaire tu es noyé dans les hors sujet. Après tu affiches l'instruction Type.
Exemple :
Private Type EnrA Z1 As String * 4 Z2 As String * 4 Z3 As String * 8 Z4 As String * 3 End Type
Dim Ligne1 As EnrA
Select Case Left$(Ligne, 4) Case "0000" Ligne1 = Ligne 'initialisation
Ligne1.Z1 '= code de type d'enregistrement Ligne1.Z2 '= premier champ utile Ligne2.Z3 '= champ suivant '... Case "1111" '... ________________________________________________ a écrit, le 26/10/2005 13:17 :
> Bonjour à tous, > > Je dois alimenter une Base de données à partir d'un fichier texte. > Mon fichier en entrée contient des codes sur les 4 premiers > caractères puis les caractères qui suivent sont fonction de la valeur > du code et bien sûr, selon la valeur du code, la structure des > données n'est pas la même. > > Exemple : > 0000xxxxttttttttrrr > 1111yyyyyyypp > 0000qqqqaaaaaaaauuu > 2222sssseee > Donc si mon code est 0000, j'ai une première donnée sur 4 caractères > puis une autre sur 8 et enfin une troisième sur 3 > Si mon code est 1111, j'ai une première donnée sur 7 et une seconde > sur 2. > > L'objectif de mon programme, c'est de créer un fichier en sortie qui > contienne une structure homogène. > 0000xxxxtttttttrrr > 1111 yyyyyyypp > 0000qqqqaaaaaaaauuu > 2222ssss ee > > Avec un tel fichier, il est très facile d'alimenter une base de > donnée. > > Je pensais concevoir un programme qui utilise le principe des Close > Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est > pas possible en VB. > Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x, > y) ? > > Merci d'avance >
Bonjour,
L'écriture Print #2, EnrA ne fonctionne pas.
si tu utilises le principe de Gloops :
Print #2, Ligne1 comme instruction
EnrA est le Type
@+
patrick
"Gloops" <gloops@niark.fr> a écrit dans le message news:
435f6f42$0$7843$8fcfb975@news.wanadoo.fr...
Bonjour,
Cherche du côté des types de données utilisateur. Dans MSDN, il faut
chercher Type dans l'index, si tu le cherches dans le sommaire tu es
noyé dans les hors sujet. Après tu affiches l'instruction Type.
Exemple :
Private Type EnrA
Z1 As String * 4
Z2 As String * 4
Z3 As String * 8
Z4 As String * 3
End Type
Dim Ligne1 As EnrA
Select Case Left$(Ligne, 4)
Case "0000"
Ligne1 = Ligne 'initialisation
Ligne1.Z1 '= code de type d'enregistrement
Ligne1.Z2 '= premier champ utile
Ligne2.Z3 '= champ suivant
'...
Case "1111"
'...
________________________________________________
fleguen@gmail.com a écrit, le 26/10/2005 13:17 :
> Bonjour à tous,
>
> Je dois alimenter une Base de données à partir d'un fichier texte.
> Mon fichier en entrée contient des codes sur les 4 premiers
> caractères puis les caractères qui suivent sont fonction de la valeur
> du code et bien sûr, selon la valeur du code, la structure des
> données n'est pas la même.
>
> Exemple :
> 0000xxxxttttttttrrr
> 1111yyyyyyypp
> 0000qqqqaaaaaaaauuu
> 2222sssseee
> Donc si mon code est 0000, j'ai une première donnée sur 4 caractères
> puis une autre sur 8 et enfin une troisième sur 3
> Si mon code est 1111, j'ai une première donnée sur 7 et une seconde
> sur 2.
>
> L'objectif de mon programme, c'est de créer un fichier en sortie qui
> contienne une structure homogène.
> 0000xxxxtttttttrrr
> 1111 yyyyyyypp
> 0000qqqqaaaaaaaauuu
> 2222ssss ee
>
> Avec un tel fichier, il est très facile d'alimenter une base de
> donnée.
>
> Je pensais concevoir un programme qui utilise le principe des Close
> Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est
> pas possible en VB.
> Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x,
> y) ?
>
> Merci d'avance
>
Bonjour, L'écriture Print #2, EnrA ne fonctionne pas.
si tu utilises le principe de Gloops : Print #2, Ligne1 comme instruction EnrA est le Type
@+
patrick
"Gloops" a écrit dans le message news: 435f6f42$0$7843$
Bonjour,
Cherche du côté des types de données utilisateur. Dans MSDN, il faut chercher Type dans l'index, si tu le cherches dans le sommaire tu es noyé dans les hors sujet. Après tu affiches l'instruction Type.
Exemple :
Private Type EnrA Z1 As String * 4 Z2 As String * 4 Z3 As String * 8 Z4 As String * 3 End Type
Dim Ligne1 As EnrA
Select Case Left$(Ligne, 4) Case "0000" Ligne1 = Ligne 'initialisation
Ligne1.Z1 '= code de type d'enregistrement Ligne1.Z2 '= premier champ utile Ligne2.Z3 '= champ suivant '... Case "1111" '... ________________________________________________ a écrit, le 26/10/2005 13:17 :
> Bonjour à tous, > > Je dois alimenter une Base de données à partir d'un fichier texte. > Mon fichier en entrée contient des codes sur les 4 premiers > caractères puis les caractères qui suivent sont fonction de la valeur > du code et bien sûr, selon la valeur du code, la structure des > données n'est pas la même. > > Exemple : > 0000xxxxttttttttrrr > 1111yyyyyyypp > 0000qqqqaaaaaaaauuu > 2222sssseee > Donc si mon code est 0000, j'ai une première donnée sur 4 caractères > puis une autre sur 8 et enfin une troisième sur 3 > Si mon code est 1111, j'ai une première donnée sur 7 et une seconde > sur 2. > > L'objectif de mon programme, c'est de créer un fichier en sortie qui > contienne une structure homogène. > 0000xxxxtttttttrrr > 1111 yyyyyyypp > 0000qqqqaaaaaaaauuu > 2222ssss ee > > Avec un tel fichier, il est très facile d'alimenter une base de > donnée. > > Je pensais concevoir un programme qui utilise le principe des Close > Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est > pas possible en VB. > Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x, > y) ? > > Merci d'avance >
patrick
Sorry erreur de ma part j'ai répondu trop vite
"patrick" a écrit dans le message news: 435f7bd3$
Bonjour, L'écriture Print #2, EnrA ne fonctionne pas.
si tu utilises le principe de Gloops : Print #2, Ligne1 comme instruction EnrA est le Type
@+
patrick
"Gloops" a écrit dans le message news: 435f6f42$0$7843$ > Bonjour, > > Cherche du côté des types de données utilisateur. Dans MSDN, il faut > chercher Type dans l'index, si tu le cherches dans le sommaire tu es > noyé dans les hors sujet. Après tu affiches l'instruction Type. > > Exemple : > > Private Type EnrA > Z1 As String * 4 > Z2 As String * 4 > Z3 As String * 8 > Z4 As String * 3 > End Type > > Dim Ligne1 As EnrA > > Select Case Left$(Ligne, 4) > Case "0000" > Ligne1 = Ligne 'initialisation > > Ligne1.Z1 '= code de type d'enregistrement > Ligne1.Z2 '= premier champ utile > Ligne2.Z3 '= champ suivant > '... > Case "1111" > '... > ________________________________________________ > a écrit, le 26/10/2005 13:17 : > > > Bonjour à tous, > > > > Je dois alimenter une Base de données à partir d'un fichier texte. > > Mon fichier en entrée contient des codes sur les 4 premiers > > caractères puis les caractères qui suivent sont fonction de la valeur > > du code et bien sûr, selon la valeur du code, la structure des > > données n'est pas la même. > > > > Exemple : > > 0000xxxxttttttttrrr > > 1111yyyyyyypp > > 0000qqqqaaaaaaaauuu > > 2222sssseee > > Donc si mon code est 0000, j'ai une première donnée sur 4 caractères > > puis une autre sur 8 et enfin une troisième sur 3 > > Si mon code est 1111, j'ai une première donnée sur 7 et une seconde > > sur 2. > > > > L'objectif de mon programme, c'est de créer un fichier en sortie qui > > contienne une structure homogène. > > 0000xxxxtttttttrrr > > 1111 yyyyyyypp > > 0000qqqqaaaaaaaauuu > > 2222ssss ee > > > > Avec un tel fichier, il est très facile d'alimenter une base de > > donnée. > > > > Je pensais concevoir un programme qui utilise le principe des Close > > Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est > > pas possible en VB. > > Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x, > > y) ? > > > > Merci d'avance > > >
Sorry erreur de ma part j'ai répondu trop vite
"patrick" <stop_patrick.mathe@libertysurf.fr> a écrit dans le message news:
435f7bd3$1@news.sncf.fr...
Bonjour,
L'écriture Print #2, EnrA ne fonctionne pas.
si tu utilises le principe de Gloops :
Print #2, Ligne1 comme instruction
EnrA est le Type
@+
patrick
"Gloops" <gloops@niark.fr> a écrit dans le message news:
435f6f42$0$7843$8fcfb975@news.wanadoo.fr...
> Bonjour,
>
> Cherche du côté des types de données utilisateur. Dans MSDN, il faut
> chercher Type dans l'index, si tu le cherches dans le sommaire tu es
> noyé dans les hors sujet. Après tu affiches l'instruction Type.
>
> Exemple :
>
> Private Type EnrA
> Z1 As String * 4
> Z2 As String * 4
> Z3 As String * 8
> Z4 As String * 3
> End Type
>
> Dim Ligne1 As EnrA
>
> Select Case Left$(Ligne, 4)
> Case "0000"
> Ligne1 = Ligne 'initialisation
>
> Ligne1.Z1 '= code de type d'enregistrement
> Ligne1.Z2 '= premier champ utile
> Ligne2.Z3 '= champ suivant
> '...
> Case "1111"
> '...
> ________________________________________________
> fleguen@gmail.com a écrit, le 26/10/2005 13:17 :
>
> > Bonjour à tous,
> >
> > Je dois alimenter une Base de données à partir d'un fichier texte.
> > Mon fichier en entrée contient des codes sur les 4 premiers
> > caractères puis les caractères qui suivent sont fonction de la valeur
> > du code et bien sûr, selon la valeur du code, la structure des
> > données n'est pas la même.
> >
> > Exemple :
> > 0000xxxxttttttttrrr
> > 1111yyyyyyypp
> > 0000qqqqaaaaaaaauuu
> > 2222sssseee
> > Donc si mon code est 0000, j'ai une première donnée sur 4 caractères
> > puis une autre sur 8 et enfin une troisième sur 3
> > Si mon code est 1111, j'ai une première donnée sur 7 et une seconde
> > sur 2.
> >
> > L'objectif de mon programme, c'est de créer un fichier en sortie qui
> > contienne une structure homogène.
> > 0000xxxxtttttttrrr
> > 1111 yyyyyyypp
> > 0000qqqqaaaaaaaauuu
> > 2222ssss ee
> >
> > Avec un tel fichier, il est très facile d'alimenter une base de
> > donnée.
> >
> > Je pensais concevoir un programme qui utilise le principe des Close
> > Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est
> > pas possible en VB.
> > Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x,
> > y) ?
> >
> > Merci d'avance
> >
>
Bonjour, L'écriture Print #2, EnrA ne fonctionne pas.
si tu utilises le principe de Gloops : Print #2, Ligne1 comme instruction EnrA est le Type
@+
patrick
"Gloops" a écrit dans le message news: 435f6f42$0$7843$ > Bonjour, > > Cherche du côté des types de données utilisateur. Dans MSDN, il faut > chercher Type dans l'index, si tu le cherches dans le sommaire tu es > noyé dans les hors sujet. Après tu affiches l'instruction Type. > > Exemple : > > Private Type EnrA > Z1 As String * 4 > Z2 As String * 4 > Z3 As String * 8 > Z4 As String * 3 > End Type > > Dim Ligne1 As EnrA > > Select Case Left$(Ligne, 4) > Case "0000" > Ligne1 = Ligne 'initialisation > > Ligne1.Z1 '= code de type d'enregistrement > Ligne1.Z2 '= premier champ utile > Ligne2.Z3 '= champ suivant > '... > Case "1111" > '... > ________________________________________________ > a écrit, le 26/10/2005 13:17 : > > > Bonjour à tous, > > > > Je dois alimenter une Base de données à partir d'un fichier texte. > > Mon fichier en entrée contient des codes sur les 4 premiers > > caractères puis les caractères qui suivent sont fonction de la valeur > > du code et bien sûr, selon la valeur du code, la structure des > > données n'est pas la même. > > > > Exemple : > > 0000xxxxttttttttrrr > > 1111yyyyyyypp > > 0000qqqqaaaaaaaauuu > > 2222sssseee > > Donc si mon code est 0000, j'ai une première donnée sur 4 caractères > > puis une autre sur 8 et enfin une troisième sur 3 > > Si mon code est 1111, j'ai une première donnée sur 7 et une seconde > > sur 2. > > > > L'objectif de mon programme, c'est de créer un fichier en sortie qui > > contienne une structure homogène. > > 0000xxxxtttttttrrr > > 1111 yyyyyyypp > > 0000qqqqaaaaaaaauuu > > 2222ssss ee > > > > Avec un tel fichier, il est très facile d'alimenter une base de > > donnée. > > > > Je pensais concevoir un programme qui utilise le principe des Close > > Copy du COBOL pour résoudre simplement mon pb mais visible ça n'est > > pas possible en VB. > > Quelqu'un aurait-il une idée autre qu'une succesion de Mid(chaine, x, > > y) ? > > > > Merci d'avance > > >
Tschuß
J'ai également essayé mais ça ne fonctionne pas mieux. Je me demande comment je dois ouvrir mon fichier en entrée. Je pense que j'ai un pb à ce niveau
J'ai également essayé mais ça ne fonctionne pas mieux.
Je me demande comment je dois ouvrir mon fichier en entrée. Je pense
que j'ai un pb à ce niveau
J'ai également essayé mais ça ne fonctionne pas mieux. Je me demande comment je dois ouvrir mon fichier en entrée. Je pense que j'ai un pb à ce niveau
patrick
RE
tu mets ligne1.z1 à ligne1.z4 dans une ligne puis tu l'ecris LigneSortie = ligne1.Z1 & ligne1.Z2 & ligne1.Z3 & ligne1.Z4 Print #2, LigneSortie
@+ patrick
"Tschuß" a écrit dans le message news:
Je suis d'accord sur le principe mais avec ce genre d'écriture, je n'arrive pas à utiliser le type que j'ai défini pour enregistrer mon fichier en sortie. L'écriture Print #2, EnrA ne fonctionne pas.
RE
tu mets ligne1.z1 à ligne1.z4 dans une ligne
puis tu l'ecris
LigneSortie = ligne1.Z1 & ligne1.Z2 & ligne1.Z3 & ligne1.Z4
Print #2, LigneSortie
@+
patrick
"Tschuß" <fleguen@gmail.com> a écrit dans le message news:
1130329025.087136.311170@f14g2000cwb.googlegroups.com...
Je suis d'accord sur le principe mais avec ce genre d'écriture, je
n'arrive pas à utiliser le type que j'ai défini pour enregistrer mon
fichier en sortie. L'écriture Print #2, EnrA ne fonctionne pas.
tu mets ligne1.z1 à ligne1.z4 dans une ligne puis tu l'ecris LigneSortie = ligne1.Z1 & ligne1.Z2 & ligne1.Z3 & ligne1.Z4 Print #2, LigneSortie
@+ patrick
"Tschuß" a écrit dans le message news:
Je suis d'accord sur le principe mais avec ce genre d'écriture, je n'arrive pas à utiliser le type que j'ai défini pour enregistrer mon fichier en sortie. L'écriture Print #2, EnrA ne fonctionne pas.
Gloops
Bon, eh bien je dois avouer que j'ai bêtement récité la "question de cours" ...
A la mise en pratique il semble manquer un maillon.
J'ai bien essayé d'utiliser CopyMemory, mais apparemment pas avec la bonne syntaxe.
Question à creuser.
Bon, eh bien je dois avouer que j'ai bêtement récité la "question de
cours" ...
A la mise en pratique il semble manquer un maillon.
J'ai bien essayé d'utiliser CopyMemory, mais apparemment pas avec la
bonne syntaxe.
Bon, eh bien je dois avouer que j'ai bêtement récité la "question de cours" ...
A la mise en pratique il semble manquer un maillon.
J'ai bien essayé d'utiliser CopyMemory, mais apparemment pas avec la bonne syntaxe.
Question à creuser.
Tschuß
Effectivement le pb n'est pas aussi simple qu'il n'y parait. J'ai trouvé ce post qui semble répondre au besoin mais la je me heurte à un pb de longueur de fichier http://groups.google.com/group/comp.lang.basic.visual/browse_frm/thread/23d 4783fe67166cc/8a8efa99df9f95f0?lnk=st&q=Type+file+text+output+structure +VB&rnum%#8a8efa99df9f95f0
Dans mon fichier de sortie, mes enregistrements sont collés les uns derrière les autres sans une fin de ligne. Normalement, avec une longueur fixe ça devrait ne pas se produire.
Effectivement le pb n'est pas aussi simple qu'il n'y parait.
J'ai trouvé ce post qui semble répondre au besoin mais la je me
heurte à un pb de longueur de fichier
http://groups.google.com/group/comp.lang.basic.visual/browse_frm/thread/23d 4783fe67166cc/8a8efa99df9f95f0?lnk=st&q=Type+file+text+output+structure +VB&rnum=25#8a8efa99df9f95f0
Dans mon fichier de sortie, mes enregistrements sont collés les uns
derrière les autres sans une fin de ligne.
Normalement, avec une longueur fixe ça devrait ne pas se produire.
Effectivement le pb n'est pas aussi simple qu'il n'y parait. J'ai trouvé ce post qui semble répondre au besoin mais la je me heurte à un pb de longueur de fichier http://groups.google.com/group/comp.lang.basic.visual/browse_frm/thread/23d 4783fe67166cc/8a8efa99df9f95f0?lnk=st&q=Type+file+text+output+structure +VB&rnum%#8a8efa99df9f95f0
Dans mon fichier de sortie, mes enregistrements sont collés les uns derrière les autres sans une fin de ligne. Normalement, avec une longueur fixe ça devrait ne pas se produire.
Gloops
Ah, oui, avec Get et Put ... fallait y penser, à ceux-là. Un peu normal, avec put, d'avoir tout bout-à-bout, en principe c'est destiné à un fichier à accès direct, pour ça qu'on n'y avait pas pensé.
Si on veut éviter ça, une direction de recherche peut être d'avoir un dernier champ de deux caractères à la fin de chaque enregistrement, dans lequel on écrit vbCrLf. Si je compte bien, dans l'exemple que j'avais pris Private Type EnrA Z1 As String * 4 Z2 As String * 4 Z3 As String * 8 Z4 As String * 3 End Type
ça nous fera des enregistrements de 21 caractères (19 pour EnrA, plus 2 pour vbCrLf = Chr$(13) + Chr$(10)). En effet, dans un fichier texte on ne compte pas les caractères de fin de ligne dans la longueur d'enregistrement, alors que dans un fichier à accès direct si.
Reste à bien trouver la bonne syntaxe.
Au fait, dans l'exemple que tu mentionnes, les champs sont transférés dans l'ordre dans lequel ils sont lus si je ne m'abuse, mais au moins si on réussit à écrire une structure dans le fichier, l'initialiser avant ne devrait pas poser de problème majeur (enfin là encore, je n'ai pas testé ...).
J'imagine qu'il y a encore un peu de boulot, là-dessus, avant que ça tourne. _____________________________________ Tschuß a écrit, le 26/10/2005 16:03 :
Effectivement le pb n'est pas aussi simple qu'il n'y parait. J'ai trouvé ce post qui semble répondre au besoin mais la je me heurte à un pb de longueur de fichier http://groups.google.com/group/comp.lang.basic.visual/browse_frm/thread/23d4783fe67166cc/8a8efa99df9f95f0?lnk=st&q=Type+file+text+output+structure+VB&rnum%#8a8efa99df9f95f0
Dans mon fichier de sortie, mes enregistrements sont collés les uns derrière les autres sans une fin de ligne. Normalement, avec une longueur fixe ça devrait ne pas se produire.
Ah, oui, avec Get et Put ... fallait y penser, à ceux-là. Un peu normal,
avec put, d'avoir tout bout-à-bout, en principe c'est destiné à un
fichier à accès direct, pour ça qu'on n'y avait pas pensé.
Si on veut éviter ça, une direction de recherche peut être d'avoir un
dernier champ de deux caractères à la fin de chaque enregistrement, dans
lequel on écrit vbCrLf. Si je compte bien, dans l'exemple que j'avais pris
Private Type EnrA
Z1 As String * 4
Z2 As String * 4
Z3 As String * 8
Z4 As String * 3
End Type
ça nous fera des enregistrements de 21 caractères (19 pour EnrA, plus
2 pour vbCrLf = Chr$(13) + Chr$(10)). En effet, dans un fichier texte on
ne compte pas les caractères de fin de ligne dans la longueur
d'enregistrement, alors que dans un fichier à accès direct si.
Reste à bien trouver la bonne syntaxe.
Au fait, dans l'exemple que tu mentionnes, les champs sont transférés
dans l'ordre dans lequel ils sont lus si je ne m'abuse, mais au moins si
on réussit à écrire une structure dans le fichier, l'initialiser avant
ne devrait pas poser de problème majeur (enfin là encore, je n'ai pas
testé ...).
J'imagine qu'il y a encore un peu de boulot, là-dessus, avant que ça tourne.
_____________________________________
Tschuß a écrit, le 26/10/2005 16:03 :
Effectivement le pb n'est pas aussi simple qu'il n'y parait.
J'ai trouvé ce post qui semble répondre au besoin mais la je me
heurte à un pb de longueur de fichier
http://groups.google.com/group/comp.lang.basic.visual/browse_frm/thread/23d4783fe67166cc/8a8efa99df9f95f0?lnk=st&q=Type+file+text+output+structure+VB&rnum%#8a8efa99df9f95f0
Dans mon fichier de sortie, mes enregistrements sont collés les uns
derrière les autres sans une fin de ligne.
Normalement, avec une longueur fixe ça devrait ne pas se produire.
Ah, oui, avec Get et Put ... fallait y penser, à ceux-là. Un peu normal, avec put, d'avoir tout bout-à-bout, en principe c'est destiné à un fichier à accès direct, pour ça qu'on n'y avait pas pensé.
Si on veut éviter ça, une direction de recherche peut être d'avoir un dernier champ de deux caractères à la fin de chaque enregistrement, dans lequel on écrit vbCrLf. Si je compte bien, dans l'exemple que j'avais pris Private Type EnrA Z1 As String * 4 Z2 As String * 4 Z3 As String * 8 Z4 As String * 3 End Type
ça nous fera des enregistrements de 21 caractères (19 pour EnrA, plus 2 pour vbCrLf = Chr$(13) + Chr$(10)). En effet, dans un fichier texte on ne compte pas les caractères de fin de ligne dans la longueur d'enregistrement, alors que dans un fichier à accès direct si.
Reste à bien trouver la bonne syntaxe.
Au fait, dans l'exemple que tu mentionnes, les champs sont transférés dans l'ordre dans lequel ils sont lus si je ne m'abuse, mais au moins si on réussit à écrire une structure dans le fichier, l'initialiser avant ne devrait pas poser de problème majeur (enfin là encore, je n'ai pas testé ...).
J'imagine qu'il y a encore un peu de boulot, là-dessus, avant que ça tourne. _____________________________________ Tschuß a écrit, le 26/10/2005 16:03 :
Effectivement le pb n'est pas aussi simple qu'il n'y parait. J'ai trouvé ce post qui semble répondre au besoin mais la je me heurte à un pb de longueur de fichier http://groups.google.com/group/comp.lang.basic.visual/browse_frm/thread/23d4783fe67166cc/8a8efa99df9f95f0?lnk=st&q=Type+file+text+output+structure+VB&rnum%#8a8efa99df9f95f0
Dans mon fichier de sortie, mes enregistrements sont collés les uns derrière les autres sans une fin de ligne. Normalement, avec une longueur fixe ça devrait ne pas se produire.
Tschuß
Bon, sans être une bille en coding, j'avoue que les accès direct dans un fichier texte, ça ne me dit rien. Les seuls foiqs que j'ai entendu parler d'accès direct dans un fichier c'était du temps ou je bossais sur des fichiers VSAM en COBOL. Bref, si on peut m'en dire plus, je suis preneur. Par contre, je n'ai pas compris comment terminer ma ligne par Chr$(13) + Chr$(10) ? Il suffit de mettre des 2 valeurs systématiquement en fin de record et ça suffit ?
Bref, si quelqu'un peut me donner des adresses oueb on je peux m'instruire sur le sujet, je suis preneur.
Bon, sans être une bille en coding, j'avoue que les accès direct dans
un fichier texte, ça ne me dit rien. Les seuls foiqs que j'ai entendu
parler d'accès direct dans un fichier c'était du temps ou je bossais
sur des fichiers VSAM en COBOL.
Bref, si on peut m'en dire plus, je suis preneur.
Par contre, je n'ai pas compris comment terminer ma ligne par Chr$(13)
+ Chr$(10) ? Il suffit de mettre des 2 valeurs systématiquement en fin
de record et ça suffit ?
Bref, si quelqu'un peut me donner des adresses oueb on je peux
m'instruire sur le sujet, je suis preneur.
Bon, sans être une bille en coding, j'avoue que les accès direct dans un fichier texte, ça ne me dit rien. Les seuls foiqs que j'ai entendu parler d'accès direct dans un fichier c'était du temps ou je bossais sur des fichiers VSAM en COBOL. Bref, si on peut m'en dire plus, je suis preneur. Par contre, je n'ai pas compris comment terminer ma ligne par Chr$(13) + Chr$(10) ? Il suffit de mettre des 2 valeurs systématiquement en fin de record et ça suffit ?
Bref, si quelqu'un peut me donner des adresses oueb on je peux m'instruire sur le sujet, je suis preneur.