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

avec Java Discussion :

Parser un fichier texte brut


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 52
    Points : 27
    Points
    27
    Par défaut Parser un fichier texte brut
    Bonjour à tous,

    J'ai un fichier de mesures qu'un logiciel me génère en format texte :

    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
    18
    19
    20
    Header_1  	Date       Time    	Method_Name (Filter_Name)     	Calc_Mode   	Sample No                     	Quality                       	Sample Id                     	 	C        	 	Si       	 	Mn       	 	P        	 	S        	 	Cr       	 	Ni       	 	Mo       	 	Al       	 	Cu       	 	Co       	 	Ti       	 	Nb       	 	V        	 	W        	 	Pb       	 	Mg       	 	B        	 	Sb       	 	Sn       	 	Zn       	 	As       	 	Bi       	 	Ta       	 	Ca       	 	Ce       	 	Zr       	 	La       	 	Se       	 	N        	 	Fe       
    Header_2  	                   	                              	            	                              	                              	                              	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        	 	%        
    Average   	29/11/2018 15:01:32	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,401	 	00000,295	 	00000,438	 	00000,014	 	0000,0054	 	000001,22	 	000001,36	 	00000,195	 	00000,018	 	00000,144	 	00000,024	 	0000,0033	<	0000,0040	 	0000,0057	<	0000,0070	<	0000,0020	<	0000,0005	 	0000,0021	 	00000,070	 	00000,019	 	0000,0041	 	00000,020	 	00000,014	<	00000,010	 	0000,0010	<	0000,0020	<	0000,0015	<	0000,0005	 	00000,019	 	00000,023	 	0000095,7
    Average   	29/11/2018 15:03:11	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,403	 	00000,293	 	00000,437	 	00000,014	 	0000,0064	 	000001,22	 	000001,36	 	00000,196	 	00000,018	 	00000,144	 	00000,025	 	0000,0038	<	0000,0040	 	0000,0056	<	0000,0070	<	0000,0020	<	0000,0005	 	0000,0021	 	00000,063	 	00000,020	 	0000,0044	 	00000,018	 	00000,014	<	00000,010	 	0000,0011	<	0000,0020	<	0000,0015	<	0000,0005	 	00000,013	 	00000,024	 	0000095,7
    Average   	29/11/2018 15:38:49	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,402	 	00000,291	 	00000,422	 	00000,016	 	0000,0058	 	000001,22	 	000001,35	 	00000,201	 	00000,018	 	00000,144	 	00000,025	 	0000,0032	<	0000,0040	 	0000,0050	<	0000,0070	<	0000,0020	<	0000,0005	 	0000,0023	 	00000,045	 	00000,020	 	0000,0035	 	00000,021	 	00000,013	<	00000,010	 	0000,0010	<	0000,0020	<	0000,0015	<	0000,0005	 	00000,026	 	00000,020	 	0000095,7
    Single    	03/12/2018 08:02:24	Fe-01-M                       	EleConc     	                              	                              	                              	  	00000,389	  	000000,53	  	000001,55	  	00000,016	  	00000,052	  	00000,136	  	00000,099	  	00000,019	  	00000,012	  	00000,200	  	00000,016	  	00000,016	 <	0000,0040	  	00000,136	  	00000,017	  	0000,0082	 <	0000,0005	  	0000,0031	  	00000,089	  	00000,017	  	0000,0021	  	00000,012	  	00000,017	  	00000,013	  	0000,0008	 <	0000,0020	  	0000,0023	 <	0000,0005	 <	0000,0020	  	00000,026	  	0000096,6
    Average   	03/12/2018 08:04:47	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,389	 	000000,53	 	000001,55	 	00000,016	 	00000,052	 	00000,136	 	00000,099	 	00000,019	 	00000,012	 	00000,200	 	00000,016	 	00000,016	<	0000,0040	 	00000,136	 	00000,017	 	0000,0082	<	0000,0005	 	0000,0031	 	00000,089	 	00000,017	 	0000,0021	 	00000,012	 	00000,017	 	00000,013	 	0000,0008	<	0000,0020	 	0000,0023	<	0000,0005	<	0000,0020	 	00000,026	 	0000096,6
    Single    	03/12/2018 08:06:40	Fe-01-M                       	EleConc     	                              	                              	                              	  	00000,381	  	000000,53	  	000001,54	  	00000,017	  	00000,056	  	00000,135	  	00000,098	  	00000,019	  	00000,012	  	00000,201	  	00000,016	  	00000,015	 <	0000,0040	  	00000,137	  	00000,014	  	0000,0072	 <	0000,0005	  	0000,0030	  	00000,078	  	00000,015	  	0000,0022	  	00000,017	  	00000,016	  	00000,013	  	0000,0007	 <	0000,0020	  	0000,0020	 <	0000,0005	  	0000,0076	  	00000,023	  	0000096,6
    Average   	03/12/2018 08:06:47	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,381	 	000000,53	 	000001,54	 	00000,017	 	00000,056	 	00000,135	 	00000,098	 	00000,019	 	00000,012	 	00000,201	 	00000,016	 	00000,015	<	0000,0040	 	00000,137	 	00000,014	 	0000,0072	<	0000,0005	 	0000,0030	 	00000,078	 	00000,015	 	0000,0022	 	00000,017	 	00000,016	 	00000,013	 	0000,0007	<	0000,0020	 	0000,0020	<	0000,0005	 	0000,0076	 	00000,023	 	0000096,6
    Single    	03/12/2018 08:10:58	Fe-01-M                       	EleConc     	                              	                              	                              	  	00000,384	  	000000,53	  	000001,53	  	00000,015	  	00000,047	  	00000,134	  	00000,093	  	00000,019	  	00000,011	  	00000,202	  	00000,014	  	00000,015	 <	0000,0040	  	00000,135	  	00000,011	  	0000,0039	 <	0000,0005	  	0000,0026	  	00000,072	  	00000,015	  	0000,0024	  	00000,012	  	00000,015	 <	00000,010	  	0000,0007	 <	0000,0020	  	0000,0017	 <	0000,0005	 <	0000,0020	  	00000,023	  	0000096,7
    Average   	03/12/2018 08:11:02	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,384	 	000000,53	 	000001,53	 	00000,015	 	00000,047	 	00000,134	 	00000,093	 	00000,019	 	00000,011	 	00000,202	 	00000,014	 	00000,015	<	0000,0040	 	00000,135	 	00000,011	 	0000,0039	<	0000,0005	 	0000,0026	 	00000,072	 	00000,015	 	0000,0024	 	00000,012	 	00000,015	<	00000,010	 	0000,0007	<	0000,0020	 	0000,0017	<	0000,0005	<	0000,0020	 	00000,023	 	0000096,7
    Average   	03/12/2018 08:12:36	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,368	 	000000,53	 	000001,53	 	00000,015	 	00000,045	 	00000,134	 	00000,091	 	00000,019	 	00000,011	 	00000,202	 	00000,014	 	00000,016	<	0000,0040	 	00000,135	 	0000,0092	 	0000,0032	<	0000,0005	 	0000,0026	 	00000,066	 	00000,015	 	0000,0028	 	00000,013	 	00000,015	<	00000,010	 	0000,0006	<	0000,0020	 	0000,0015	<	0000,0005	 	0000,0068	 	00000,029	 	0000096,7
    Average   	03/12/2018 08:25:10	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,378	 	000000,53	 	000001,52	 	00000,015	 	00000,044	 	00000,134	 	00000,092	 	00000,019	 	00000,011	 	00000,202	 	00000,014	 	00000,014	<	0000,0040	 	00000,134	 	0000,0095	 	0000,0027	<	0000,0005	 	0000,0027	 	00000,073	 	00000,015	 	0000,0029	 	00000,011	 	00000,015	<	00000,010	 	0000,0006	<	0000,0020	<	0000,0015	<	0000,0005	 	0000,0043	 	00000,026	 	0000096,7
    Average   	03/12/2018 08:37:17	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,368	 	000000,52	 	000001,54	 	00000,014	 	00000,045	 	00000,133	 	00000,096	 	00000,018	 	00000,011	 	00000,201	 	00000,015	 	00000,013	<	0000,0040	 	00000,133	 	00000,012	 	0000,0041	<	0000,0005	 	0000,0026	 	00000,079	 	00000,013	 	0000,0031	 	00000,013	 	00000,016	<	00000,010	 	0000,0008	<	0000,0020	 	0000,0019	<	0000,0005	 	0000,0060	 	00000,022	 	0000096,7
    Average   	03/12/2018 08:38:50	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,353	 	000000,52	 	000001,51	 	00000,014	 	00000,047	 	00000,132	 	00000,092	 	00000,018	 	00000,011	 	00000,203	 	00000,014	 	00000,014	<	0000,0040	 	00000,131	 	0000,0090	 	0000,0024	<	0000,0005	 	0000,0028	 	00000,069	 	00000,014	 	0000,0032	 	00000,010	 	00000,015	<	00000,010	 	0000,0008	<	0000,0020	<	0000,0015	<	0000,0005	<	0000,0020	 	00000,026	 	0000096,8
    Average   	03/12/2018 08:49:07	Fe-01-M                       	EleConc     	                              	                              	                              	 	00000,198	 	00000,238	 	000000,85	 	00000,013	 	00000,024	 	000001,05	 	00000,031	 	00000,241	 	00000,027	 	00000,013	 	00000,011	<	0000,0005	<	0000,0040	 	0000,0069	 	00000,017	 	0000,0070	<	0000,0005	 	0000,0018	 	00000,080	 	0000,0031	 	0000,0032	 	00000,012	 	00000,017	<	00000,010	 	0000,0007	<	0000,0020	 	0000,0015	<	0000,0005	 	00000,012	 	00000,020	 	0000097,1
    Average   	03/12/2018 08:53:13	Fe-01-M                       	EleConc     	55cr1stemcor                  	                              	                              	 	000000,52	 	00000,273	 	000000,86	 	00000,013	 	00000,023	 	00000,239	 	00000,114	 	00000,041	 	00000,028	 	00000,085	 	00000,017	<	0000,0005	<	0000,0040	 	0000,0024	 	00000,016	 	0000,0058	<	0000,0005	 	0000,0022	 	00000,085	 	0000,0099	 	0000,0028	 	00000,014	 	00000,016	<	00000,010	 	0000,0011	<	0000,0020	<	0000,0015	<	0000,0005	 	0000,0023	 	00000,021	 	0000097,6
    Average   	03/12/2018 08:58:46	Fe-01-M                       	EleConc     	B5                            	                              	                              	 	00000,397	 	00000,299	 	00000,422	 	00000,015	 	0000,0060	 	000001,21	 	000001,47	 	00000,189	 	00000,024	 	00000,136	 	00000,031	 	0000,0037	<	0000,0040	 	0000,0053	 	00000,020	 	0000,0086	 	0000,0007	 	0000,0022	 	00000,099	 	00000,018	 	0000,0031	 	00000,027	 	00000,018	 	00000,015	 	0000,0012	<	0000,0020	 	0000,0020	<	0000,0005	 	0000,0097	 	00000,020	 	0000095,5
    Average   	03/12/2018 09:42:22	Fe-01-M                       	EleConc     	asco38mnvs4                   	                              	                              	 	00000,369	 	000000,67	 	000001,13	 	00000,014	 	00000,064	 	00000,233	 	00000,127	 	00000,028	 	0000,0035	 	00000,124	 	00000,017	<	0000,0005	<	0000,0040	 	00000,290	 	00000,013	 	0000,0075	<	0000,0005	 	0000,0030	 	00000,080	 	00000,014	 	0000,0044	 	00000,015	 	00000,016	 	00000,014	 	0000,0012	<	0000,0020	 	0000,0018	<	0000,0005	 	0000,0081	 	00000,023	 	0000096,7
    Average   	03/12/2018 09:46:12	Fe-01-M                       	EleConc     	ARCELOR38MNVS5
    J'ai un petit souci pour le parser dans mon application Java, je souhaiterai récupérer chaque ligne et colonne dans un tableau à 2 dimensions. Pour la deuxième chose ce n'est pas un problème mais je ne vois pas comment parser efficacement ce fichier : j'ai essayé à coups de split() mais le problème est que les colonnes sont séparées par des espaces qui varient (il n'y a pas le même nombre d'espaces entres chaque colonnes...)

    Je sèche un peu donc je me tourne vers le forum, si il existe une solution. Je ne veux pas d'un code, juste une piste pour pouvoir le passer (indépendamment du langage, peut-être utiliser des expressions régulières ?)

    Merci pour votre aide,

    Bonne journée !

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Points : 176
    Points
    176
    Par défaut
    Bonjour,

    C'est peut être trompeur, mais toutes les colonnes de chaque lignes semblent commencer au même index.

    Si c'est le cas, tu peux extraire chaque ligne et ensuite, la Ligne étant un string tu peux faire des substring pour récupérer chaque colonne.

    Jérémy

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 52
    Points : 27
    Points
    27
    Par défaut
    Merci de ta réponse,

    Comment je peux récupérer l'index de chaque ligne pour chaque colonne ?

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2016
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 80
    Points : 176
    Points
    176
    Par défaut
    Si tu es sûr qu'il ne changera pas, tu peux le compter... et définir ton propre "schéma".

    Car le spliter sur les espaces c'est impossible là sachant que tu as des colonnes totalement vide..

    Jérémy

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 52
    Points : 27
    Points
    27
    Par défaut
    Je pense que je vais m'en sortir à coup de substring si les index sont bien les meme
    Merci !

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