Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1083 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [ java / regexp ] parser un fichier texte.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ java / regexp ] parser un fichier texte.

n°128009
TBone
Pouet.
Posté le 18-04-2002 à 16:35:26  profilanswer
 

salut,
 
je dois nettoyer un fichier texte de séquences listées.
 
dans le JDK1.4, on trouve la classe java.util.regex qui permet d'utiliser les regexp. soit.
 
ça marche bien pour les String et StringBuffer mais... mon fichier texte ne rentre pas dans un StringBuffer... et là je suis en train de me mélanger les pinceaux dans les BufferReader à partir de File, ... et donc là... je suis perdu.
 
comment puis-je faire pour passer d'un File à un StringBuffer sachant que je ne peux pas découper ce fichier en tronçons de 1024 char par exemples...
 
(histoire: fichier xhtml pourri généré par word2000, j'ai fait une petite liste des choses pas jolies à retirer et donc, je ne peux me permettre de découper des tags par erreur via la création successives de buffers de 1024...)
 
z'avez une idée pour avoir accès à un flat file en continu ?


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
mood
Publicité
Posté le 18-04-2002 à 16:35:26  profilanswer
 

n°128017
darklord
You're welcome
Posté le 18-04-2002 à 16:44:13  profilanswer
 

pq tu dis que ton fichier texte ne rentre pas dans ton stringbuffer ?
 
pour info
 

Code :
  1. /**
  2. * Loads the root file in a String representation. This is done before parsing
  3. * the file for absolute or external references.
  4. */
  5. private void loadRootFile() {
  6. try {
  7.    File f = ...
  8.    BufferedInputStream in = new BufferedInputStream(new 
  9.    FileInputStream(f));
  10.    StringWriter out = new StringWriter();
  11.    int b;
  12.    while ((b=in.read()) != -1)
  13.       out.write(b);
  14.    out.flush();
  15.    out.close();
  16.    in.close();
  17.    s = out.toString();
  18. }
  19. catch (IOException ie)
  20.  {
  21.  //  }
  22.     }

 

[jfdsdjhfuetppo]--Message édité par DarkLord--[/jfdsdjhfuetppo]


---------------
Just because you feel good does not make you right
n°128027
TBone
Pouet.
Posté le 18-04-2002 à 16:57:38  profilanswer
 

:heink:  
 
je potasse et je reviens... il y a un truc que je ne saisis pas avec les Stream mais je ne sais pas quoi... donc attends toi à une question ;)
 
merci pour le coup de pouce.


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°128031
darklord
You're welcome
Posté le 18-04-2002 à 17:00:52  profilanswer
 

on peut changer la méthode qui est pas efficace du tout puisqu'elle lit byte par byte ... Mais bon ca on peut changer après
 
C'est des fichiers de quelle taille?


---------------
Just because you feel good does not make you right
n°128046
TBone
Pouet.
Posté le 18-04-2002 à 17:24:08  profilanswer
 

ça varie... ce sont des docs de Word de taille libre -> comme on doit virer pas mal de blabla ils ont assez gros... mais je n'ai pas de taille précise. ça peut aller jusqu'à 1 ou 2 Mb...
à mon avis pas plus...
 
là où je suis étonné par ta réponse c'est qu'on m'a toujours dit que les String et StringBuffer étaient limités en taille... et comme mon prog ne peut être limité à cause de la taille d'un fichier...

 

[jfdsdjhfuetppo]--Message édité par TBone--[/jfdsdjhfuetppo]


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°128050
darklord
You're welcome
Posté le 18-04-2002 à 17:27:29  profilanswer
 

TBone a écrit a écrit :

là où je suis étonné par ta réponse c'est qu'on m'a toujours dit que les String et StringBuffer étaient limités en taille...



 
 :non:  
 
Absolument pas. Tu es limité physiquement par la mémoire RAM disponible, c'est tout. Je vais meme te donner une chouette méthode qui permet de remplacer A par B dans une String
 

Code :
  1. /**
  2.      * Replace all occurrences of oldToken in s with newToken, or only the first occurrence if fAll is false. <br>
  3.      * replace("aaaa", "aa", "bbb", false) returns "bbbaa"<br> replace("aaaa", "aa", "bbb", true) returns "bbbbbb"
  4.      */
  5.     public static String replace(String s, String oldToken, String newToken, boolean fAll) {
  6.         if ((s == null) || (oldToken == null) || (newToken == null)) {
  7.             throw new IllegalArgumentException("Null argument(s) seen" );
  8.         }
  9.         int oldTokenLen = oldToken.length();
  10.         StringBuffer sb = null;
  11.         int oldPos = 0;
  12.         int pos = s.indexOf(oldToken, oldPos);
  13.         if (oldPos > -1) {
  14.             sb = new StringBuffer(s.length());
  15.         }
  16.         for (; pos > -1; pos = s.indexOf(oldToken, oldPos)) {
  17.             sb.append(s.substring(oldPos, pos));
  18.             sb.append(newToken);
  19.             oldPos = pos + oldTokenLen;
  20.             if (!fAll) {
  21.                 break;
  22.             }
  23.         }
  24.         return ((oldPos > 0) ? sb.append(s.substring(oldPos)).toString() : s);
  25.     }


---------------
Just because you feel good does not make you right
n°128065
TBone
Pouet.
Posté le 18-04-2002 à 17:52:44  profilanswer
 

je regarde ça de suite et après @home !
 
merci bcp! :jap:


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°128260
TBone
Pouet.
Posté le 19-04-2002 à 09:17:40  profilanswer
 

ça commence à fonctionner.
j'ai une boulette à réparer mais ça tourne plus ou moins rond.
 
merci du coup de pouce!
 
(les sources exemples viennent d'où ? de chez Sun ?)


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
n°128265
darklord
You're welcome
Posté le 19-04-2002 à 09:33:24  profilanswer
 

TBone a écrit a écrit :

(les sources exemples viennent d'où ? de chez Sun ?)  




 
moi mais des tas d'autres gens ont déjà du faire des choses similaires (et donc chez SUN aussi :D )

 

[jfdsdjhfuetppo]--Message édité par DarkLord--[/jfdsdjhfuetppo]


---------------
Just because you feel good does not make you right

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [ java / regexp ] parser un fichier texte.

 

Sujets relatifs
[Perl] J'arrive pas a obtenir ce que je veux avec les regexp[JAVA] [FLASH] du flash avec java?
Fichier d'aide sur Java ?[JAVA] Modifer un .CLASS ??
[JAVA] JProgressBarUn pti coup de main en java (please je débute)
RMI java en C/C++ ?Je cherche une perssones pour me creer un appelet java pour un chat.
[java] recuperer des images sur le net? 
Plus de sujets relatifs à : [ java / regexp ] parser un fichier texte.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR