Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 15h40   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
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 :
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 !
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 21h32   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

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

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
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 :
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
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 22h56   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
bien sûr j'ai lu ces faq. Mais je ne trouve pas de réponse à ma question!
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 11h49   #4
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Code :
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 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 14h27   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
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 !
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 16h51   #6
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 40
Points : 27
Points : 27
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..
rstck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2011, 17h09   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 58
Points : 10
Points : 10
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 !
zskiredj est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h51.


 
 
 
 
Partenaires

Hébergement Web