|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| comment lire et récupérer les données d'un fichier à accés direct |
| Débuté par evelyne.pauluzzi, 19 déc. 2004 14:06 - 3 réponses |
| |
| | | |
|
| |
| Posté le 19 décembre 2004 - 14:06 |
Bonjour, Comment peut-on récupérer les infos (non cryptées) d'un fichier à accés direct, pour les réinjecter dans un fichier hyperfile de windev afin de reconstruire une application.
j'ai essayé avec les instructions Fouvre(), FlitLigne() etc... mais je n'arrive à rien, je ne récupére que les 3 premiers champs
fichier Base.dat : Champs du fichier à accés direct Champ 1 : 3 caractères Champ 2 : 20 caractères Champ 3 : 20 caractères Champ 4 : 11 caractères Champ 5 : 30 caractères Champ 6 : 30 caractères Champ 7 : 5 caractères Champ 8: 30 caractères Champ 9 : 18 caractères Champ 10 :18 caractères Champ 11 :15 caractères Champ 12 : 2 caractères Champ 13 :20 caractères Champ 14 : 3 caractères (FFF) ...
il y a d'autres champs, mais seuls les 14 premiers nous suffisent le champ 14 contient toujours FFF
L'entête du fichier va de 0 à l'octet 4112. Ce fichier étant trop volumineux pour être récupéré via un traitement de texte. Cordialement |
| |
| |
| | | |
|
| | |
| |
| Posté le 19 décembre 2004 - 23:44 |
tu lis le fichier texte, tu effectes le résultat dans une structure et copie de la stucture au fichier hf champ par champ.
exemple de code :
monfichierdat est une structure Champ1 est une chaine fixe sur 3 Champ2 est une chaine fixe sur 20 Champ3 est une chaine fixe sur 20 Champ4 est une chaine fixe sur 11 Champ5 est une chaine fixe sur 30 Champ6 est une chaine fixe sur 30 Champ7 est une chaine fixe sur 5 Champ8 est une chaine fixe sur 30 Champ9 est une chaine fixe sur 18 Champ10 est une chaine fixe sur 18 Champ11 est une chaine fixe sur 15 Champ12 est une chaine fixe sur 2 Champ13 est une chaine fixe sur 20 Champ14 est une chaine fixe sur 3 Champ15 est une chaine fixe sur (le rest de la taille d'un enreg) fin
res = fouvre("monfichier.dat",fotexte) flit(res,4112) machaine = flit(res,tailleenreg) tantque machaine <> eot transfert(&monfichierdat,&machaine) fichierhf.rub1 = monfichierdat.champ1 fichierhf.rub2 = monfichierdat.champ2 etc... hajoute(monfichierhf) machaine = flit(res,tailleenreg) fin
A+ Adrien
"evelyne Pauluzzi" <evelyne.pauluzzi@wanadoo.fr> a écrit dans le message de news: 41c564b1@news.pcsoft.fr...
Bonjour, Comment peut-on récupérer les infos (non cryptées) d'un fichier à accés direct, pour les réinjecter dans un fichier hyperfile de windev afin de reconstruire une application.
j'ai essayé avec les instructions Fouvre(), FlitLigne() etc... mais je n'arrive à rien, je ne récupére que les 3 premiers champs
fichier Base.dat : Champs du fichier à accés direct Champ 1 : 3 caractères Champ 2 : 20 caractères Champ 3 : 20 caractères Champ 4 : 11 caractères Champ 5 : 30 caractères Champ 6 : 30 caractères Champ 7 : 5 caractères Champ 8: 30 caractères Champ 9 : 18 caractères Champ 10 :18 caractères Champ 11 :15 caractères Champ 12 : 2 caractères Champ 13 :20 caractères Champ 14 : 3 caractères (FFF) ..
il y a d'autres champs, mais seuls les 14 premiers nous suffisent le champ 14 contient toujours FFF
L'entête du fichier va de 0 à l'octet 4112. Ce fichier étant trop volumineux pour être récupéré via un traitement de texte. Cordialement
|
| |
| |
| | | |
|
| | |
| |
| Posté le 21 décembre 2004 - 10:22 |
J'ai essayé comme indiqué mais je ne récupére que les 3 premiers champs. la taille des enregistrements fait 1024 octects :
IdFichier = Fouvre(Monfichier,lectureseule) FPositionne(IdFichier,4112,Fpdebut) Flit(IdFichier,1024) et je ne récupére que les 3 premiers champs |
| |
| |
| | | |
|
| | |
| |
| Posté le 21 décembre 2004 - 18:30 |
Attention a la forme de la variable Machaine, si un caractere 0 est détecté , la chaine est tronquée.
Essayez avec une chaine fixe ou un buffer
Evelyne Pauluzzi wrote:
J'ai essayé comme indiqué mais je ne récupére que les 3 premiers champs. la taille des enregistrements fait 1024 octects :
IdFichier = Fouvre(Monfichier,lectureseule) FPositionne(IdFichier,4112,Fpdebut) Flit(IdFichier,1024) et je ne récupére que les 3 premiers champs
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|