IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Traitement des fichiers textes


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut Traitement des fichiers textes
    Bonjour,

    J'aurais besoin d'améliorer ma gestion des fichiers textes.
    En effet, je dois supprimer une dizaine de lignes au début du fichier ainsi que les deux dernière lignes.

    Actuellement je créé un deuxième fichier en y ajoutant toutes les lignes qui m'intéressent du fichier source. Seulement cette solution m'oblige à parcourir l'intégralité du fichier ce qui est parfois un peu long vu que j'ai fréquement des fichiers de 10 à 50 Mo.

    Est-ce que quelqu'un connait une méthode pour :
    1/ Supprimer une ligne de données dans un fichier texte
    2/ Commencer à lire un fichier texte par la fin.

    Merci d'avance pour toute solution ou piste de recherche.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Les enregistrements de ton fichier ont-ils une longueur fixe ?

    Que fais-tu avec tes fichiers texte modifiés ?

    Sinon, je ne connais pas de meilleure méthode que celle que tu as employée.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut
    Merci de ton intérêt Marot_r

    Pour répondre à tes questions :

    1/ Les enregistrements de mes fichiers n'ont malheureusement pas toujours une longueur fixe.
    2/ La modification des fichiers sert à les mettre en fiorme de façon à pouvoir les charger avec un transferText ce qui est beaucoup plus rapide que le chargement ligne à ligne surtout pour els fichiers > à 5 Mo

    J'ai trouvé une piste pour mon premier point.
    Plutôt que de supprimer les première ligne, je vais commencer à charger le fichier à partir de la remière ligne contenant des données. Il semble que ce soit possible en utilisant le champ StartRow de la table MSysIMEXSpecs.

    Il me reste à trouver comment lire un fichier à partir de se fin...

    Quelqu'un a une idée ?

    Bon ben, si personne ne voit une méthode plus efficace que l'artillerie lourde que j'ai sortis je vais devoir en rester là.
    Tant pis

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Tu peux utiliser les vielles commandes de lecture du VBA qui sont très rapides.

    Exemple de lecture de fichier séquentiel, old style.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim nomFic as string:nomFic="NomCompletDeTonFichier" 'Ex : C:\Toto\Titi\MonFichier.txt
    dim numFic as integer:numFic=freefile()
    open nomFic for input as #numFic :'Ouvre le fichier en lecture
    dim lf as string
    do while not eof(numfic)
      line input #1,lf
      debug.print lf
    loop
    close #numfic
    Comme c'est une lecture ligne à ligne tu peux sauter des bout du fichier.

    Pour ce qui est de lire un fichier à partir de la fin tu pourrais utiliser une lecture binaire du fichier.

    Ici un exemple de code lecture binaire et un bon article sur le sujet ici http://www.cybwarrior.com/FR/QBasic-...-fichiers.html


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'Lit un fichier caractère par caractère jusqu'à ce qu'on ai atteint la taille (Lof=Lenght Of File) du fichier
     
    DIM Octet AS STRING * 1
    OPEN Fichier$ FOR BINARY AS #1
    FOR i = 1 TO LOF(1)
        GET #1, i, Octet
        debug.print octet
    NEXT i
    CLOSE #1
    La commande GET te permets de te placer directement à un endroit du fichier. Donc en inversant la for next tu pourrais lire ton ficier en commençant par la fin.

    Mais comme il va falloir que tu gères toi-même la reconstitution des lignes par la détection des fin d'enregistrtement (vbCr et vbLF) je ne suis pas certain que cela en vaille la peine.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. java et traitement des fichiers texte
    Par amani amanii dans le forum Général Java
    Réponses: 0
    Dernier message: 01/03/2014, 01h13
  2. Réponses: 8
    Dernier message: 14/09/2006, 16h43
  3. Un programme "p2p" pour échanger des fichiers text
    Par Cthulhu 22 dans le forum Développement
    Réponses: 2
    Dernier message: 17/02/2005, 15h51
  4. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo