Pb avec fonction print
Résolu
boun
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
WhiteFang Messages postés 2063 Date d'inscription Statut Membre Dernière intervention -
WhiteFang Messages postés 2063 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous!
J’ai un problème avec l’écriture dans un fichier.
J’ai une Base de données ACCESS où je dois récupérer des données pour ensuite les écrire dans un fichier. Chaque enregistrement doit faire 240 octets.
J’utilise donc une variable « wprel » de type variant où je stocke mes enregistrements. Puis j’utilise la fonction Print pour écrire dans le fichier « rolprel » le contenu de « wprel » :
Open "c:\rolprel" For Output As #2
(…)
Do Until rq.EOF ‘rq est un recordset
(…)
wprel = wprel + (données)
(…)
rq.MoveNext
Loop
rq.Close
Print #2, wprel
Close #2
Mon problème est que mon fichier fait 722 octets alors que le contenu de « wprel » fait 720 octets après traitement (=> 3 enregistrements de 240 octets).
J’ai essayé avec la fonction Write # mais j’ai le même problème.
Pouvez-vous m’aider ? Merci d’avance
J’ai un problème avec l’écriture dans un fichier.
J’ai une Base de données ACCESS où je dois récupérer des données pour ensuite les écrire dans un fichier. Chaque enregistrement doit faire 240 octets.
J’utilise donc une variable « wprel » de type variant où je stocke mes enregistrements. Puis j’utilise la fonction Print pour écrire dans le fichier « rolprel » le contenu de « wprel » :
Open "c:\rolprel" For Output As #2
(…)
Do Until rq.EOF ‘rq est un recordset
(…)
wprel = wprel + (données)
(…)
rq.MoveNext
Loop
rq.Close
Print #2, wprel
Close #2
Mon problème est que mon fichier fait 722 octets alors que le contenu de « wprel » fait 720 octets après traitement (=> 3 enregistrements de 240 octets).
J’ai essayé avec la fonction Write # mais j’ai le même problème.
Pouvez-vous m’aider ? Merci d’avance
A voir également:
- Pb avec fonction print
- Fonction si et - Guide
- Print artist - Télécharger - Loisirs créatifs
- Print pratic - Télécharger - Photo & Graphisme
- Directory list & print - Télécharger - Divers Utilitaires
- Print manager - Télécharger - Suite bureautique
4 réponses
;-) Tu parles de la taille du fichier ?
Tu ne trouves pas normal que la taille du fichier soit supérieure à ce que tu lui a mis dedans, c'est ça ?
;-)
Tu ne trouves pas normal que la taille du fichier soit supérieure à ce que tu lui a mis dedans, c'est ça ?
;-)
Salut,
n'y a t-il pas un retour à la ligne de trop à la fin du fichier, ou un descripteur de fin de fichier en trop??
n'y a t-il pas un retour à la ligne de trop à la fin du fichier, ou un descripteur de fin de fichier en trop??
Tout d'abord merci à tous les 2 de m'avoir consacré de votre temps.
- Réponse à Whitefang : Mon problème, c'est que mon fichier fait 2 octets de plus que la variable qui le remplit et je sais pas à koi correspond ces 2 octets. Je pense que c'est la fonction print qui impute ces 2 octets mais pour déclarer koi je sais pas?
Essaie de faire sous VBA :
var = "bonjour"
Open "c:\essai" For Output As #1
Print #1,var
Close #1
Tu verras que ton fichier essai fera 9 octets alors que var en fait que 7. Tu comprends ce que je veux dire?
Réponse à Nico : Non j'avais pas de retour chariot. Mais du coup, j'ai résolu mon problème en utilisant la fonction Put au lieu de Print ou Write et en modifiant quelques points :
- déclaré wprel en type string
- ouvert mon fichier #2 en mode binary au lieu de Output
Ainsi la fonction put n'impute aucun octet supplémentaire et remplit mon fichier #2 que du contenu de ma variable wprel.
Voilà merci encore à vous 2. A plus!
- Réponse à Whitefang : Mon problème, c'est que mon fichier fait 2 octets de plus que la variable qui le remplit et je sais pas à koi correspond ces 2 octets. Je pense que c'est la fonction print qui impute ces 2 octets mais pour déclarer koi je sais pas?
Essaie de faire sous VBA :
var = "bonjour"
Open "c:\essai" For Output As #1
Print #1,var
Close #1
Tu verras que ton fichier essai fera 9 octets alors que var en fait que 7. Tu comprends ce que je veux dire?
Réponse à Nico : Non j'avais pas de retour chariot. Mais du coup, j'ai résolu mon problème en utilisant la fonction Put au lieu de Print ou Write et en modifiant quelques points :
- déclaré wprel en type string
- ouvert mon fichier #2 en mode binary au lieu de Output
Ainsi la fonction put n'impute aucun octet supplémentaire et remplit mon fichier #2 que du contenu de ma variable wprel.
Voilà merci encore à vous 2. A plus!
;-)
Vi, je comprends mieux ta question !
Alors, saches une chose : Le contenu d'un fichier, c'est une chose, mais sa taille en est une autre !!
Quand tu enregistres un fichier, le système lui rajoute des informations, style Hdr1/Hdr2, qui sont les entêtes de fichier et qui servent à délimiter ton fichier sur le disque dur et à pouvoir le "gérer" !
Le système à besoin de savoir où commence ton fichier et où il finit, pour le manipuler... Utilisé par les FAT, par tout, en fait... Et tu verras que si ton fichier est "fragmenté", il augmentera aussi de taille, car à chaque fragment, il faudra rajouter l'adresse du prochain fragment de fichier, bref.... C'est normal...
;-)
Vi, je comprends mieux ta question !
Alors, saches une chose : Le contenu d'un fichier, c'est une chose, mais sa taille en est une autre !!
Quand tu enregistres un fichier, le système lui rajoute des informations, style Hdr1/Hdr2, qui sont les entêtes de fichier et qui servent à délimiter ton fichier sur le disque dur et à pouvoir le "gérer" !
Le système à besoin de savoir où commence ton fichier et où il finit, pour le manipuler... Utilisé par les FAT, par tout, en fait... Et tu verras que si ton fichier est "fragmenté", il augmentera aussi de taille, car à chaque fragment, il faudra rajouter l'adresse du prochain fragment de fichier, bref.... C'est normal...
;-)