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

  FORUM HardWare.fr
  Programmation
  Java

  Problème de logique-flux

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de logique-flux

n°1990027
jmlaguines​s
Posté le 04-05-2010 à 03:27:48  profilanswer
 

Hello à tous.
 
Alors voilà, je cherche à créer un script en java pour récupérer une partie d'un fichier texte, délimité par les deux balises : tagd et tagf.
 
Voila mon code. Le problème, c'est qu'il crée bien le fichier, mais que je le retrouve vide.
 
Donc sans doute un problème "logique" dans ce code...
 
J'ai pas mal cherché, bidouillé, mais là j'avoue que je suis un peu perdu et qu'un coup de main ne serait pas de refus...
 
Merci d'avance à tous ceux qui se pencheront sur le problème.
 
 

Code :
  1. while(flot!=-1){ // TQ pas fin du fichier  
  2.    flot = readin2.read();
  3.    lu=(char)flot;
  4.    if(lu==tagd.charAt(0)){
  5.     for (i=1; i<(tagd.length()) ; i++) {
  6.      flot = readin2.read();
  7.      lu=(char)flot;
  8.      if(lu==tagd.charAt(i)){
  9.       stocker=true;
  10.      }else{
  11.       stocker=false;
  12.      }
  13.     }
  14.     if(stocker==true){
  15.      if(lu==tagf.charAt(0)){
  16.       for(i=1; i<(tagf.length()) ; i++) {
  17.        if(lu==tagf.charAt(i)){
  18.         stopstocker=true;
  19.        }else{
  20.         stopstocker=false;
  21.         if(stocker==true){
  22.          output.write(lu);
  23.          output.flush();
  24.         }
  25.        }
  26.       }
  27.      }
  28.     }
  29.    }

mood
Publicité
Posté le 04-05-2010 à 03:27:48  profilanswer
 

n°1990077
Deamon
Posté le 04-05-2010 à 10:01:30  profilanswer
 

Il manquerait pas un close ?

n°1990078
phnatomass
Je m'empare de ton esprit !!
Posté le 04-05-2010 à 10:06:02  profilanswer
 

A mon avis tu n'utilise pas ton boolean stopstocker
Tu peux aussi utiliser  un PushBackReader pour ce type de problématique.

n°1990125
jmlaguines​s
Posté le 04-05-2010 à 12:07:46  profilanswer
 

Bonjour.
 
Oui Deamon, il manquait le output.flush() et le close(), merci beaucoup.
 
phnatomass, oui, MERCI. C'est exactement la classe qu'il me faut apparemment. Et je vais m'en servir pour d'autres choses ;).
 
Mais j'ai encore un problème. Je n'arrive pas à construire :s.
 

Code :
  1. try{
  2.   FileReader readin2 = new FileReader(in);
  3.   BufferedReader input = new BufferedReader(readin2);
  4.   FileWriter writeout = new FileWriter(out,true);
  5.   BufferedWriter output = new BufferedWriter(writeout);
  6.   flot=readin2.read(); //on lit le flot. si flot =-1 fin du fichier  
  7.   char car=(char)flot;
  8.   char lu=(char)flot;
  9.   PushbackInputStream reader;
  10.   char c;
  11.   boolean debutOk = false;
  12.   while( ( c = reader.read() ) != -1 ){
  13.    if( c == tagD.charAt( 0 ) ){
  14.     debutOk = true;
  15.     i = 1;
  16.     for( ; i < tagD.length() ; ++i ){
  17.      c = reader.read();
  18.      if( c != tagD.charAt(i) || c == -1 ){
  19.       debutOk = false;
  20.       for( ; i >= 0 ; --i ){
  21.        reader.unread( tagD.charAt( i ) );
  22.       }
  23.       break;
  24.      }
  25.     }
  26.    }
  27.    while( debutOk )
  28.    {
  29.     if( c == tagF.charAt( 0 ) )
  30.     {
  31.      i = 1;
  32.      for( ; i < tagF.length() ; ++i )
  33.      {
  34.       c = reader.read();
  35.       if( c != tagF.charAt( i ) || c == -1 )
  36.       {
  37.        debutOk = false;
  38.        for( int k = 0 ; k < i ; ++k )
  39.        {
  40.         output.write( tagF.charAt( k ) );
  41.        }
  42.        if( c != -1 )
  43.        {
  44.         output.write( c );
  45.        }
  46.        break;
  47.       }
  48.      }
  49.     }
  50.     else
  51.     {
  52.      output.write( c );
  53.     }
  54.    }
  55.   }
  56.   output.flush(); //on envoie le buffer dans le fichier de destination ici:"C:\\monfichier.txt"  
  57.   output.close(); //on ferme le buffer et le filereader flotlecture  
  58.   readin.close();
  59.  }
  60.  catch (IOException e) {
  61.   System.out.println(" erreur :" + e.toString());
  62.  }


 
Ligne 14 :'(


Message édité par jmlaguiness le 04-05-2010 à 12:08:21

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

  Problème de logique-flux

 

Sujets relatifs
Débutant need Help en CProbléme selection multiple [Résolu]
Covariance VBA: Problème[CSS] Problème taille typo
Probleme avec lgsl_v5.7_e107 gametrackerProblème d'iframe qui redirige...
Problème avec les "à" qui deviennent des "�"Problème de boucle [resolu]
Petit probleme de macro VBA sous Excelprobleme pour cacher les erreurs de connexion à database
Plus de sujets relatifs à : Problème de logique-flux


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