parser fichier quelconque ?

parser fichier quelconque ? - Java - Programmation

Marsh Posté le 27-06-2003 à 10:14:38    

Bonjour,
 
Existe-t'il une API pour parser un fichier texte quelconque?
 
Merci !

Reply

Marsh Posté le 27-06-2003 à 10:14:38   

Reply

Marsh Posté le 27-06-2003 à 10:22:41    

ben moi je le fais a coup de Pattern pour spliller mes string ... :/
Mais bon ya ptet plus propre ...


---------------
get amaroK plugin
Reply

Marsh Posté le 27-06-2003 à 10:33:43    

FileReader ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 27-06-2003 à 11:14:53    

Citation :

Salut,
 
Excuse-moi mais je ne connais pas les Patern ? Comment on les utilise ?
 
Merci !

 
 
bon je vais repondre la, histoire d'en faire profiter tout le monde :D meme si je suis pas convaincu que ce soit la meilleure solution ...
 
bon alors pour commencer, la javadoc est pas trop mal, ya qques exemples, et doit y avoir aussi quelques trucs dans les tuts de sun.
Pour ca cf FAQ prog@HFR
sinon exemple :
 

Code :
  1. public void load(BufferedReader source) {
  2.         String buff, buffTab [];
  3.         // pattern correspondant aux tabulations
  4.         Pattern p = Pattern.compile("\t" );
  5.         // dans bufftab, j'ai maintenant toutes les portions de la ligne qui étaient séparées par une tabulation :)
  6.         buffTab=p.split(source.readLine());
  7.         // ...
  8.      }


---------------
get amaroK plugin
Reply

Marsh Posté le 27-06-2003 à 11:35:12    


bon je vais repondre la, histoire d'en faire profiter tout le monde :D meme si je suis pas convaincu que ce soit la meilleure solution ...
 
bon alors pour commencer, la javadoc est pas trop mal, ya qques exemples, et doit y avoir aussi quelques trucs dans les tuts de sun.
Pour ca cf FAQ prog@HFR
sinon exemple :
 

Code :
  1. public void load(BufferedReader source) {
  2.         String buff, buffTab [];
  3.         // pattern correspondant aux tabulations
  4.         Pattern p = Pattern.compile("\t" );
  5.         // dans bufftab, j'ai maintenant toutes les portions de la ligne qui étaient séparées par une tabulation :)
  6.         buffTab=p.split(source.readLine());
  7.         // ...
  8.      }

 
[/citation]
 
Je te remercie pour ces explications. Je vais voir ça de + près..

Reply

Marsh Posté le 27-06-2003 à 13:13:54    

bobuse a écrit :

Citation :

Salut,
 
Excuse-moi mais je ne connais pas les Patern ? Comment on les utilise ?
 
Merci !

 
 
bon je vais repondre la, histoire d'en faire profiter tout le monde :D meme si je suis pas convaincu que ce soit la meilleure solution ...
 
bon alors pour commencer, la javadoc est pas trop mal, ya qques exemples, et doit y avoir aussi quelques trucs dans les tuts de sun.
Pour ca cf FAQ prog@HFR
sinon exemple :
 

Code :
  1. public void load(BufferedReader source) {
  2.         String buff, buffTab [];
  3.         // pattern correspondant aux tabulations
  4.         Pattern p = Pattern.compile("\t" );
  5.         // dans bufftab, j'ai maintenant toutes les portions de la ligne qui étaient séparées par une tabulation :)
  6.         buffTab=p.split(source.readLine());
  7.         // ...
  8.      }

 


...Et il sert à quoi buff ?

Reply

Marsh Posté le 27-06-2003 à 13:33:39    

R3g a écrit :


...Et il sert à quoi buff ?


a rien :o
copier-coller stou


---------------
get amaroK plugin
Reply

Marsh Posté le 27-06-2003 à 13:48:33    

pourquoi passer par Pattern et pas directement:  
String [] segments = source.readLine().split("\t" ); ?
 
edit: pour ê précis, faut taper le source.readLine().split("\t" ); dans une boucle hein :)
 
sachant que readline() apporte un String et que la classe String permet de découper via la méthode split(...)  
 
public String[] split(String regex){}
 
(c'est juste histoire de savoir si il y a une raison qui m'échappe si ce n'est de garantir un compatibilité descendante car c'est propre au JDK1.4)


Message édité par TBone le 27-06-2003 à 13:49:30

---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 27-06-2003 à 13:50:39    

TBone a écrit :

pourquoi passer par Pattern et pas directement:  
String [] segments = source.readLine().split("\t" ); ?
 
edit: pour ê précis, faut taper le source.readLine().split("\t" ); dans une boucle hein :)
 
sachant que readline() apporte un String et que la classe String permet de découper via la méthode split(...)  
 
public String[] split(String regex){}
 
(c'est juste histoire de savoir si il y a une raison qui m'échappe si ce n'est de garantir un compatibilité descendante car c'est propre au JDK1.4)


 
Je savais bien que ma solution etait pas la meilleure ... j'ai toujours raison :sol:


---------------
get amaroK plugin
Reply

Marsh Posté le 27-06-2003 à 13:51:47    

:D


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 27-06-2003 à 13:51:47   

Reply

Marsh Posté le 27-06-2003 à 14:12:37    

ouais, en même temps, StringTokenizer fait ca aussi bien ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 27-06-2003 à 15:01:43    

en effet... mais je trouve un tableau plus sympa pour voyager dans les données...
 
mais j'ai commencé avec ça j'avoue :)


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 27-06-2003 à 15:23:47    

benou a écrit :

ouais, en même temps, StringTokenizer fait ca aussi bien ...


 
Soit le contenu de mon fichier texte :
 
-----
ce forum est vraiment <super> et les smilies sont <funs>.
 
---
Comment je fais pour récupérer les éléments qui sont dans les balises? (on peut supposer que les balises peuvent être représentées sous une autre forme)
 

Reply

Marsh Posté le 27-06-2003 à 15:55:38    

MessageFormat.parse, StringTokenizer
 
sinon là ici j'ai recemment fait un truc qui parse des fichiers en fixed-length (chaque "donnée" utiliser un nbr fixe de chars sur la ligne), dont le format est defini en xml
bah :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 27-06-2003 à 16:31:41    

pilou50 a écrit :


 
Soit le contenu de mon fichier texte :
 
-----
ce forum est vraiment <super> et les smilies sont <funs>.
 
---
Comment je fais pour récupérer les éléments qui sont dans les balises? (on peut supposer que les balises peuvent être représentées sous une autre forme)


dans ce cas ce n'est pas une découpe via split qui est intéressante mais passer justement par les classes Pattern et surtout Matcher.
 
crée un regexp style "<[a-zA-Z0-9 ]*>" histoire de ramener via Matcher toutes les occurences répondant à ce pattern...
 
dans la javadoc de Sun de la classe Pattern, il y a une longue explication des différents patterns utilisables... avec ça tu devrais pouvoir faire qque chose de bieng...


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 27-06-2003 à 16:44:01    

TBone a écrit :


dans ce cas ce n'est pas une découpe via split qui est intéressante mais passer justement par les classes Pattern et surtout Matcher.
 
crée un regexp style "<[a-zA-Z0-9 ]*>" histoire de ramener via Matcher toutes les occurences répondant à ce pattern...
 
dans la javadoc de Sun de la classe Pattern, il y a une longue explication des différents patterns utilisables... avec ça tu devrais pouvoir faire qque chose de bieng...


comme regexp, je verrai plutot "<[^<]>" (ou je "<[~<]>" sais plus) on sait jamais qu'il y ait pas que des lettres ...


---------------
get amaroK plugin
Reply

Marsh Posté le 27-06-2003 à 16:53:59    

bobuse a écrit :


comme regexp, je verrai plutot "<[^<]>" (ou je "<[~<]>" sais plus) on sait jamais qu'il y ait pas que des lettres ...


j'ai tapé une regexp simple histoire d'illustrer mais évidemment elle doit être optimisée et généralisée... :jap:


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 27-06-2003 à 16:57:20    

c koi ce pseudo Pilou50 ? :heink:  :heink:  :heink:  
 
 :pt1cable:  :sol:  :pt1cable:  :sol:

Reply

Marsh Posté le 27-06-2003 à 16:59:45    

pilou51 a écrit :

c koi ce pseudo Pilou50 ? :heink:  :heink:  :heink:  
 
 :pt1cable:  :sol:  :pt1cable:  :sol:  


C'est --pilou51 :D

Reply

Marsh Posté le 27-06-2003 à 17:19:52    

R3g a écrit :


C'est --pilou51 :D

[:xp1700]


---------------
get amaroK plugin
Reply

Marsh Posté le 27-06-2003 à 20:58:34    


 
oui mais non ne faites pas ça. :sweat:

Reply

Marsh Posté le 29-06-2003 à 12:25:08    

:lol: j'aurais pas osé  :whistle:  
 
non non sérieux, c bien Pilou50 :)

Reply

Marsh Posté le 29-06-2003 à 16:38:48    

:heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-06-2003 à 11:43:52    

pilou51 a écrit :

:lol: j'aurais pas osé  :whistle:  
 
non non sérieux, c bien Pilou50 :)


 
Il y a 51 pilou  :D

Reply

Marsh Posté le 30-06-2003 à 11:56:42    

bobuse a écrit :


comme regexp, je verrai plutot "<[^<]>" (ou je "<[~<]>" sais plus) on sait jamais qu'il y ait pas que des lettres ...


 
Merci pour tes explications. C'est exactement ce que je cherchais. J'ai étudié les règles et j'ai trouvé mon bonheur.
 
Merci aussi à tous ceux qui ont participé.
 
A +

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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