supprission des lignes redondantes dans un fichier

supprission des lignes redondantes dans un fichier - Java - Programmation

Marsh Posté le 20-10-2013 à 21:35:44    

Bonsoir ,
 
J'ai un fichier qui contient des colonnes(des en-têtes) et des lignes ,je souhaitais supprimer les lignes dont le ID et numéro sont les mêmes .
 
Exemple:
 
// mon fichier:
 
ID         numero        ref           taille
 
1            115           998           12
 
1            115           998           12
 
2            123           108            8
 
3            101           856           11
 
3            333           753            9
 
=> Dans ce cas il faudrait supprimer la deuxième ligne car le ID et le numéro existe déjà au niveau de la première ligne ..
 
merci d'avance

Reply

Marsh Posté le 20-10-2013 à 21:35:44   

Reply

Marsh Posté le 20-10-2013 à 23:33:10    

Il faut lire le fichier ligne à ligne, et ne réécrire que les lignes dont les deux champs ID et numéro ne sont pas égaux à ceux des lignes qui ont déjà été écrites.
 
Petite astuce pour que le traitement soit plus rapide si le fichier est gros :
Il faudrait trier préalablement le fichier avec ces deux colonnes comme clés. Puis lors de la lecture et de l'écriture, le filtre ne se fera que par rapport à la ligne précédente, au lieu de se faire par rapport à tous les lignes précédentes.
 
Bon courage !

Reply

Marsh Posté le 29-10-2013 à 21:56:52    

Pour chaque ligne, concatène les 2 clés et ajoute les dans un Set. Si l'ajout au Set s'est bien passé, c'est que la ligne n'existe pas, tu peux l'écrire dans le fichier. Si l'ajout a échoué, c'est que la clé existait déjà, tu passes la ligne.
 
http://docs.oracle.com/javase/7/do [...] tml#add(E)

Reply

Sujets relatifs:

Leave a Replay

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