OVH Cloud OVH Cloud

insérer une ligne au début d'un fichier texte

7 réponses
Avatar
Hugues
Bonjour à tous,

J'ai créé avec access 97 un fichier texte par exportation d'une requête.
J'ai besoin de lui ajouter une ligne au début (une espèce de titre).
Comment puis-je faire en vba ?
Merci de vos conseils.
Hugues

7 réponses

Avatar
Hugues

il faut insérer une ligne dans la requête à exporter de la même façon que
pour ajouter "Tous" dans une liste modifiable.
il faut faire une requête union comme ceci:
SELECT [table1].[numéro] As Id, [table1].[Lenom] As Nom, 2 As OrdreTri
FROM [table1]
UNION SELECT -1 As Id, "Ceci est mon titre" As Nom, 1 As OrdreTri FROM
[table1]
ORDER BY OrdreTri, Nom;

ensuite tu exportes cette requête par :
DoCmd.TransferText acExportDelim, , "requête1", "requete1.txt", True

il faudra bien ajuster les champs sur les deux requêtes et placer le champ
titre dans un champ texte.
c'est une solution pour ne pas passer par la lecture écriture du fichier
texte.


Merci, Raymond, pour cette idée que j'ai mise en oeuvre.
Mon problème est que je voudrais maintenant supprimer dans mon fichier
texte les espaces qui se sont insérés automatiquement sur la première ligne
après mon titre. C'est possible ?

--
Hugues

Avatar
Hugues
"Raymond [mvp]" a écrit dans le message de
news: OUAoUlh$
Les espaces proviennent d'où ? tu es en longueur fixe ?

Oui, je suis en longueur fixe.


--
Hugues

Avatar
Hugues
"Raymond [mvp]" a écrit ...
si tu es en longueur fixe tu ne peux pas supprimer des caractères sinon
les

logiciels vont se perdre dans les longueurs et te créer des problèmes
d'export.


Alors, pour résoudre mon problème initial, je pourrais peut-être tout
simplement utiliser une commande MSDOS pour concaténer à mon
fichier texte un autre fichier correspondant à ma ligne de titre.
copy titre.txt + données.txt toto.txt
Comment fait-on ça en VB ?

Merci.

--
Hugues

Avatar
Raymond [mvp]
Bonjour.

il faut insérer une ligne dans la requête à exporter de la même façon que
pour ajouter "Tous" dans une liste modifiable.
il faut faire une requête union comme ceci:
SELECT [table1].[numéro] As Id, [table1].[Lenom] As Nom, 2 As OrdreTri
FROM [table1]
UNION SELECT -1 As Id, "Ceci est mon titre" As Nom, 1 As OrdreTri FROM
[table1]
ORDER BY OrdreTri, Nom;

ensuite tu exportes cette requête par :
DoCmd.TransferText acExportDelim, , "requête1", "requete1.txt", True

il faudra bien ajuster les champs sur les deux requêtes et placer le champ
titre dans un champ texte.
c'est une solution pour ne pas passer par la lecture écriture du fichier
texte.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Hugues" a écrit dans le message de news:
OYUMYjX$
Bonjour à tous,

J'ai créé avec access 97 un fichier texte par exportation d'une requête.
J'ai besoin de lui ajouter une ligne au début (une espèce de titre).
Comment puis-je faire en vba ?
Merci de vos conseils.
Hugues




Avatar
Raymond [mvp]
Les espaces proviennent d'où ? tu es en longueur fixe ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Hugues" a écrit dans le message de news:
eKfUgah$

Merci, Raymond, pour cette idée que j'ai mise en oeuvre.
Mon problème est que je voudrais maintenant supprimer dans mon fichier
texte les espaces qui se sont insérés automatiquement sur la première
ligne
après mon titre. C'est possible ?

--
Hugues




Avatar
Raymond [mvp]
si tu es en longueur fixe tu ne peux pas supprimer des caractères sinon les
logiciels vont se perdre dans les longueurs et te créer des problèmes
d'export.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Hugues" a écrit dans le message de news:
Ok$Cqnh$

"Raymond [mvp]" a écrit dans le message
de
news: OUAoUlh$
Les espaces proviennent d'où ? tu es en longueur fixe ?

Oui, je suis en longueur fixe.


--
Hugues





Avatar
Raymond [mvp]
par une commande Shell
Shell """copy titre.txt + données.txt toto.txt"""
si les noms sont des variables, utiliser les & et doubler les guillemets.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Hugues" a écrit dans le message de news:
e8Go5qi$
Alors, pour résoudre mon problème initial, je pourrais peut-être tout
simplement utiliser une commande MSDOS pour concaténer à mon
fichier texte un autre fichier correspondant à ma ligne de titre.
copy titre.txt + données.txt toto.txt
Comment fait-on ça en VB ?

Merci.

--
Hugues