Ordonner lignes numérotées d'un fichier texte

Ordonner lignes numérotées d'un fichier texte - Java - Programmation

Marsh Posté le 18-03-2008 à 02:22:47    

Bonjour,
 
J'ai un fichier texte qui comporte des lignes de ce style:
 
5.regergerg
2.erzgergre
4.ergregreg
3.ergergere
1.ergergree
 
Je veux remettre les lignes dans l'ordre(par numéro croissant) dans un autre fichier.
 
Comment faire?
 
Merci pour vos réponses  ;)

Reply

Marsh Posté le 18-03-2008 à 02:22:47   

Reply

Marsh Posté le 18-03-2008 à 09:48:18    

Où est-ce que tu bloques exactement?

Reply

Marsh Posté le 18-03-2008 à 10:24:24    

Dans ma méthode de lecture, j'essaie d'extraire les numéros de ligne pour ensuite pouvoir réordonner celles-ci, mais sans succès.
 
Exemple:
 
public static void lire() {
     String tab[]= new String[nombrelignes];
     int inum=0;
     try {
     BufferedReader fichier = new BufferedReader(new FileReader("fichier.txt" ));
     while((ligne = fichier.readLine()) != null ) {
         m++;
         tab[m]=ligne;
         num = tab[m].substring(0, tab[m].indexOf("." ));
         inum = Integer.parseInt(num);
         
         /* par exemple pour m=1 on a inum=2.
         J'aimerais donc pouvoir remettre les lignes dans l'ordre avec tab[inum]? */
     }
     fichier.close();
   }
   catch (Exception e) {
       e.printStackTrace();
   }
 }


Message édité par supermoule le 18-03-2008 à 10:29:23
Reply

Marsh Posté le 18-03-2008 à 11:27:46    

Si tes numéros de lignes sont uniques et si tu connais le nombre de ligne total, c'est tout con
 

Code :
  1. public static void lire() {
  2.   String tab[]= new String[nombrelignes];
  3.   int inum=0;
  4.   try {
  5.     BufferedReader fichier = new BufferedReader(new FileReader("fichier.txt" ));
  6.     while((ligne = fichier.readLine()) != null ) {
  7.       String num = ligne.substring(0, ligne.indexOf("." ));
  8.       inum = Integer.parseInt(num);
  9.       tab[inum - 1] = ligne; // on place la ligne directement au bon indice
  10.      }
  11.      // Rien de plus à faire
  12.      fichier.close();
  13.    }
  14.    catch (Exception e) {
  15.        e.printStackTrace();
  16.    }
  17. }


Message édité par Bidem le 18-03-2008 à 11:51:35
Reply

Marsh Posté le 18-03-2008 à 11:59:35    

Merci Bidem!!
Bonne journée.
 :jap:

Reply

Sujets relatifs:

Leave a Replay

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