Rechercher : dans
Par :

Générer un fichier txt à largeur fixe

Dernière réponse le 31 aoû 2007 à 01:51:40 manuder, le 29 aoû 2007 à 15:32:35 
 Signaler ce message aux modérateurs

Bonjour,

Voilà, je dois générer un fichier txt à l'argeur fixe au départ d'access mais je ne sais pas comment faire.

Est-ce la largeur des champsde la table access qui va délimiter la largeur des champs du fichier txt ou cela doit-il être parametré lors de la creation du fichier. Faut-il ajouter des carractères et/ou espaces lorsque le nombre de carractères est insuffisant dans un champs et si oui, comment?
Enfin, y a-t-il moyen d'automatiser cela ?

D'avance, je vous remercie pour votre aide.

Manu

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « générer un fichier txt à largeur fixe » dans :
[MS-Dos] Ecrire dans un fichier texte en batch VoirPour écrire dans un fichier texte, il suffit d'utiliser une redirection ">" : echo texte_à_ecrire > fichier_de_sortie.txt Pour écrire à la fin d'un texte existant (concaténation) : echo "écriture a la fin du fichier ">>...
Fichier TXT VoirFormat TXT Un fichier TXT est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Pour ouvrir ou modifier un tel fichier, il suffit d'utiliser le bloc-notes ou un éditeur de texte traditionnel.

1

Chacual, le 29 aoû 2007 à 15:33:58

Ton fichier est rempli par une requête ?

Répondre à Chacual

2

manuder, le 29 aoû 2007 à 18:33:47

Les données seront dans une table mais comme je n'ai besoin que d'une partie des champs de la table, je ferai un select pour n'avoir que ce qui m'intéresse oui.

Merci,

Manu

Configuration: Windows XP
Internet Explorer 7.0

Répondre à manuder

3

manuder, le 30 aoû 2007 à 10:52:43

Quelqu'un aurait-il une piste pour moi ?

Merci,

Manu

Configuration: Windows XP
Internet Explorer 7.0

Répondre à manuder

4

Chacual, le 30 aoû 2007 à 10:54:15

Dans ton select, utilise les fonctions RPAD ou LPAD pour avoir une largeur fixe.

Répondre à Chacual

5

manuder, le 30 aoû 2007 à 16:41:21

Ok, merci, peux-tu m'aider encore un peu en m'indiquant les éléments suivants :

- Est-ce que je peux personnaliser le nbre de carractères par champs
- A quel moment dans le select dois-je insérer la fonction et de quelle manière.

Enfin, si tu as un exemple, c'est encore mieux.

D'avance, merci

Manu

Configuration: Windows XP
Internet Explorer 7.0

Répondre à manuder

6

Chacual, le 30 aoû 2007 à 16:50:28

Le problème c'est que je ne sais pas si ca fonctionne avec une base access car à l'origine c'est des fonctions Oracle. De toute façon, il doit exister un équivalent sous Access.
Exemple : Je veux sélectionner deux champs :
- SERIAL_NUMBER : Numérique que je souhaite fixer sur 10 et aligner à droite (Ex : 150 --> 0000000150)
- NOM : Chaîne de caractères dont je souhaite limiter la taille à 20 caractères et aligner à gauche (Ex: Dupont --> "Dupont ")
La requête est :
SELECT RPAD(SERIAL_NUMBER, 10, '0'), LPAD(NOM, 20, ' ')
FROM ...

Répondre à Chacual

7

Chacual, le 30 aoû 2007 à 16:51:31

Ca existe sous Access !
La description des fonctions est là :
http://support.microsoft.com/kb/210573

Répondre à Chacual

8

 manuder, le 31 aoû 2007 à 01:51:40

Merci,

Avec la solution de Chacual ainsi que l'aide du support microsoft, cela fonctionne très bien.

Manu

Configuration: Windows XP
Internet Explorer 6.0

Répondre à manuder