Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème d'écriture

    5 novembre 2008 à 13:41:28

    Bonjour,

    Je voudrais ne pas afficher les infos d'une ligne si celle-ci commence par 11 espaces...
    J'écris cela mais ca ne marche pas.
    Quelqu'un a une idée???
    Merci d'avance

    public static void main(String[] argv) throws IOException
      {
    	BufferedReader lecteur = null;
    	//FileReader lecteur;
        FileWriter ecrivain;
        String ligne;
        lecteur = new BufferedReader(new FileReader("C:/Documents and Settings/isen/Bureau/dico.txt"));
        ecrivain = new FileWriter("cccd.txt");
     
        
        while((ligne = lecteur.readLine()) != null)
        {
        	if(ligne.substring (1,11) != "")
        	{
            ecrivain.write(ligne.substring(1,10));
        	ecrivain.write("\n");
        	ecrivain.write(ligne.substring(11));
        	ecrivain.write("\n\n");
        	} 
        }
       lecteur.close();
        ecrivain.close();
      }
    }
    
    • Partager sur Facebook
    • Partager sur Twitter
      5 novembre 2008 à 14:23:27

      salut,

      je suppose que c'est cette ligne si qui vérifie si tu n'a pas 11 espaces
      if(ligne.substring (1,11) != "")
      


      premierement, tu dois commencer à 0 pas à 1 (enfin c'est peut être fais exprès a toi de voir)

      mais par contre, le != "" je ne comprends pas ce que tu veux faire. Déjà le != sera toujours vrai vu que String est un objet, et donc même si tes deux Strings ont la même valeurs, ce sont des instances différentes. Tu dois utiliser !str1.equals(str2) .

      Ensuite tu à une String de 11 caractères, que tu compare à une autre vide, tu ne risque donc pas qu'elles soient les mêmes. En suivant ton idée, tu peux utiliser trim() qui supprime tous les espaces en début et en fin de ta String :
      if(!ligne.substring(0,11).trim().equal(""))
      


      sur ce, bonne journée.
      • Partager sur Facebook
      • Partager sur Twitter
        5 novembre 2008 à 14:59:31

        ok merci cela marche bien.
        maintenant mon probème est le suivant : si je rentre dans le if cela écri bien comme je le veux. En revanche si je suis dans le else, je voudrais que ce qu'il y a à partir du 12éme caractère (il y a forcémernt quelque chose) vienne se mettre à la suite de ce qui avait été mis avant.
        Le problème est que j'ai déjà fait le \n\n donc je ne sais pas comment faire...
        merci d'avance

        public static void main(String[] argv) throws IOException
          {
        	BufferedReader lecteur = null;
        	//FileReader lecteur;
            FileWriter ecrivain;
            String ligne;
            lecteur = new BufferedReader(new FileReader("C:/Documents and Settings/isen/Bureau/dico.txt"));
            ecrivain = new FileWriter("ee.txt");
         
            
            while((ligne = lecteur.readLine()) != null)
            {
            	if(!ligne.substring(0,11).trim().equals(""))
        
            	{
                ecrivain.write(ligne.substring(1,10));
            	ecrivain.write("\n");
            	ecrivain.write(ligne.substring(11));
            	ecrivain.write("\n\n");
            	} 
                else
            	{
            	ecrivain.write(ligne.substring(11));
            	}	
            }
           lecteur.close();
            ecrivain.close();
          }
        
        • Partager sur Facebook
        • Partager sur Twitter
          6 novembre 2008 à 14:29:24

          tu peux faire un truc dans le genre :
          public static void main(String[] argv) throws IOException
            {
          	BufferedReader lecteur = null;
          	//FileReader lecteur;
              FileWriter ecrivain;
              String ligne;
              lecteur = new BufferedReader(new FileReader("C:/Documents and Settings/isen/Bureau/dico.txt"));
              ecrivain = new FileWriter("ee.txt");
           
              boolean firstLine = true;
          
              while((ligne = lecteur.readLine()) != null)
              {
          
              	if(!ligne.substring(0,11).trim().equals("")) {
          
                  if(!firstLine) ecrivain.write("\n\n");
              	firstLine = false;
          
                  ecrivain.write(ligne.substring(1,10));
              	ecrivain.write("\n");
              	ecrivain.write(ligne.substring(11));
                  } else {
              	ecrivain.write(ligne.substring(11));
              	}	
              }
             lecteur.close();
              ecrivain.close();
            }
          


          • Partager sur Facebook
          • Partager sur Twitter

          problème d'écriture

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown