Manipulation de fichier *.txt

Manipulation de fichier *.txt - VB/VBA/VBS - Programmation

Marsh Posté le 25-05-2004 à 10:13:36    


Ce que je veux c'est modifier un fichier text avant de l'importer
en supprimant la premiére et la derniére ligne puis le renommer cela à partir d'un module VB.
 
  Comme le travail se fait tout les jours sur 200 tables une fonction qui me permettrais d'autpmatiser ces operation sera d'un grand secour.
 

Reply

Marsh Posté le 25-05-2004 à 10:13:36   

Reply

Marsh Posté le 25-05-2004 à 10:54:11    

iNumLig% = 0
ouvrir fichier à lire en lecture
ouvrir fichier destination en écriture
lire ligne (line input en VB pour lire la ligne entière)
iNumLig% = iNumLig% + 1
tant que fichier lu pas fini
  if (iNumLig% <> 1) then écrit ligne dans fichier destination
  lire ligne
  iNumLig% = iNumLig% + 1
fin de tant que  
on ferme les tampons entrée et sortie
 
Sauf erreur, on n'écrira pas la dernière.
 
Pour le code, voir topic voisin où qq ouvre un fichier pour récupérer valeurs et quantités code barre.
 
Si on veut automatiser, on peut, sous VisualBasic (mais ça peut aussi s'écrire sous QuickBasic DOS si les noms de fichiers n'ont pas plus que 8.3 caractères) récupérer l'argument de la ligne de commande dans une variable Command$
Si l'on lance  
MonProg toto.log
dans MonProg, la variable Command$ contiendra "toto.log". On peut alors prévoir que le fichier de sortie soit toto.xyz, ou autre...
 
Avec la commande DOS, for %f in (*.log) do MonProg %f, ça devrait traiter tous les fichiers .log du répertoire où on le lance et générer les fichiers voulus.
 
EDIT : http://forum.hardware.fr/hardwaref [...] 1948-1.htm


Message édité par Carbon_14 le 25-05-2004 à 10:55:59
Reply

Marsh Posté le 25-05-2004 à 11:57:05    

Merci beaucoup pour le tuyeau
 
ca marbien le truc c'est que vba m'ecrit la ligne dans le fichier destination entre ""
y a t'il un moyen de ne pas les avoir dans le fichier destination

Reply

Marsh Posté le 25-05-2004 à 12:18:09    

Je vois pas pourquoi (manque de pratique) mais il faut déjà déclarer la variable dans laquelle est stockée la ligne courante en tant que chaîne.
 
Line input #tampon1, Ligne$ en entrée
print #tampon2, Ligne$ en sortie ?
 
Quand on écrit une chaîne, elle devrait être intacte...

Reply

Marsh Posté le 25-05-2004 à 12:31:36    


Merci beaucoup ça marche il fallais utiliser print plutot que write.
 
Si possible une autre question  
 
Pour importer ces fichier dans une base de données access j'utilise une procedure 'Import_data'  dans d'un module 'Import' que j'ai créer dans ma base de donnée 'Ma_base'
 
Elle importe les donnée dont j'ai besoin si je l'exécute à partir d'access mais j'arrive pas à la lancer à partir d'excel.
 
  Connaiterais tu un truc pour la lancer d'excel.
 
  Remarque: dans cette fonction j'utilise des librairie propre à access et l'option 'compare database' du coup je peut pas l'enregisterer en tant que macro excel: Le debuger ne l'aime pas :)

Reply

Marsh Posté le 25-05-2004 à 12:35:34    

Suispas calé du tout en Office. J'ai acheté un portable avec Office full mais pas encore eu temps expérimenter (pas le temps au labo).
 
Faudrait peut-être faire un autre topic 'lancer macro ACCESS depuis EXCEL' à moins que qq passe par là.

Reply

Marsh Posté le 25-05-2004 à 13:42:52    

Merci je vais le faire, ton aide m'a été précieuse .
 
Un dernier truc à propos des fichier text lors de l'importation lorsque j'appele  
 
'Open fichier_source For Input As #1'
y a t'il un moyen pour qu'à partir d'une partie du nom du fichier le trouver
 
En faite le nom de mes fichier source est comstruit de la façon suivante : prefixe+nbre_de lignes.txt
 
donc determiner le nom du fichier à partir du prefixe m'eviterais de rentrer manuellement le nom tout les jours

Reply

Marsh Posté le 25-05-2004 à 13:54:12    

En faite c'est bon je viens de découvrir la fonction 'dir'
Merci comme même

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed