Bonjour,![]()
Je souhaiterais trier un fichier texte.
Il y a plusieurs clés de tri (clés multiples).
Elles sont passées via une variable d'environnement
ex: export clés=21,3,a 33,5,n
21,3,a:
21 étant le debut du premier critere de tri dans la ligne, 3 étant sa longueur, a indiquant le type (a pour alpha, n pour numerique...).
33,5,n
33 étant le debut du deuxième critere de tri dans la ligne, 5 étant sa longueur, n indiquant le type (a pour alpha, n pour numerique...).
j'ai une classe auxiliaire Criteres permettant de stocker les informations propres à chacune de mes clés.
class Criteres{
private int numeroCritere;
private int debut;
private int longueur;
private char type;
//constructeurs
//methodes accesseurs
....
}
je souhaiterais developper une autre classe auxiliaire appelée ObjetLigne qui permetterait d'instancier des objets contenant chacun une ligne avec les champs à trier. Ces objets seraient mis ensuite dans un conteneur de type list
Il ne me resterait alors plus qu'à implémenter l'interface Comparable pour trier ces objets.
Est ce correct de passer par des classes auxiliaires pour réaliser ce type d'opération ou faut il plutôt passer par des classes internes ?.![]()
Deplus j'ai un problème avec ma classe ObjetLigne. Je ne sais pas comment faire pour différencier les champs entier des champs chaine de caractère. Dois je utiliser une map, une array, une list??????????? sachant que ensuite je devrez comparer tout ça dans le bon ordre.
Voir ci-dessous:
class ObjetLigne implements Comparable {
String elementLigne;
ObjetLigne (String _elementLigne){
elementLigne=_elementLigne;
}
void putElementField(String _field, int _numero, char _type )
{
}
void putElementInt(Integer critere,int _numero, char _type)
{
}
// implémenter l'interface Comparable
public int compareTo (Object o) {
//ObjetLigne temp = (ObjetLigne) o;
//return premierCritereString.compareTo (temp.premierCritereString.toLowerCase());
return 0;}
Je ne suis pas un grand developpeur et je suis un peu perdu dans tout ça.
Merci pour tout l'aide que vous pourrez m'apporter,
Partager