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 Discussion :

supprimer l'entête d'un fichier texte


Sujet :

VBA

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Points : 35
    Points
    35
    Par défaut supprimer l'entête d'un fichier texte
    Bonjour tout le monde !

    J'ai un fichier texte dont je voudrais supprimer l'entête, pour pouvoir importer ensuite ce fichier dans une base Access. Le fichier ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    HEADER    ;DATE           ;08/03/2011 09:32
    HEADER    ;USER           ;
    HEADER    ;LIST NAME      ;VAR_dev_detaillee
    HEADER    ;TYPE           ;HISTORICAL VAR DETAILED BY OPTIONS
    HEADER    ;CURRENCY       ;EUR
    HEADER    ;UNIT           ;1
    HEADER    ;INCLUDE EXCHANGE POSITIONS
    HEADER    ;INCLUDE SENSITIVITIES
     
     
    Amount = x+y/f(x,y)
     
    CORPSE    ;DATE           ;GROUP;SCENARIO  ;CURRENCY       ;INDEX               ;AMOUNT              ;ORIGINAL PNL        ;ORIGINAL MTM        ;SPOT                ;SPOT SHOCK          
    CORPSE    ;07/03/2011     ;JOH IRD BTB;20100304  ;EUR            ;EIB3M               ;                   0;                   0;                   0;             1.00000;             1.00000
    CORPSE    ;07/03/2011     ;JOH IRD BTB;20100304  ;USD            ;LIB3M               ;                   0;                   0;                   0;             1.40145;             1.00007
    etc ...
    L'idée est donc d'ouvrir le fichier texte, et de supprimer les lignes tant qu'on ne tombe par sur la string "CORPSE".

    Est ce quelqu'un saurait comment faire ?

    Merci d'avance pour votre aide précieuse !

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Tu pourrais déjà regarder dans la FAQ et le cours sur la manipulation de fichier.
    Voici ces 2 liens qui peuvent t'aider, je pense.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    http://vb.developpez.com/faqvbs/?page=II.2.4#fsoLitFichier
    http://warin.developpez.com/access/fichiers/#LII-D-2
    A ma connaissance, il n'y a pas de fonction delete prédéfini pour une ligne d'un fichier texte.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Points : 35
    Points
    35
    Par défaut
    bien sûr j'ai lu ces faq. Mais je ne trouve pas de réponse à ma question!

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Ouvrir le fichier en lecture (A)
    Ouvrir un autre fichier en ecriture (B)
    Lire le fichier A
    flag_Ecrire = Faux
    Tant que pas fin de fichier A
      Si debut_ligne='CORPSE'  ET flag_Ecrire  = FAUX
          flag_Ecrire =Vrai
      Fin si
      Si flag_Ecrire  = Vrai alors
          Ecrire dans fichier B
      Fin s
      lire fichier A
    Fin tant que
    Fermer A
    Fermer B
    Le resultat est dans fichier B
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Points : 35
    Points
    35
    Par défaut
    merci pour ta réponse. Mais j'ai déja testé cette solution consistant à recopier le fichier sans les parties qui m'intéressent ...
    Le problème c est que mon fichier fait 36Mo en texte, avec 200 000 lignes. Ca prend donc un temps fou !

    Si je trouve pas de solution, je pense je vais développer un code en C# en .exe et lancer le .exe. Mais on n est pas là ...

    Si quelqu'un a une suggestion, n'hésitez pas !

  6. #6
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    c'est peut-être bête mais... si ce n'est que l'en-tête que vous voulez supprimer, on peut s'arrêter dès qu'on rencontre "CORPSE" en début d'une ligne ? J'imagine qu'il y des successions HEADER-CORPSE ; dans ce cas, il y aura du temps de traitement à la lecture du fichier et, surtout, à l'écriture dans une table. Vous pourriez donc vous organiser en amont en 'architecturant' le fichier à lire à votre guise (définir des plages fixes pour les lignes HEADER ?)...

    Pas d'idées plus lumineuses..

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 63
    Points : 35
    Points
    35
    Par défaut
    merci pour votre tentative !
    Finalement je pense je vais faire le module en C++ et compiler un .exe qui fait le travail ...

    Entre temps, je suis toujours preneur d'une idée lumineuse !

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/05/2006, 13h38
  2. Supprimer certaines lignes d'un fichier texte
    Par kek_net dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 11h21
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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