Bonjour,
Je cherche à instancier un nombre variable d'objets selon le contenu d'un fichier texte, je m'explique. D'un coté, j'ai mon fichier texte qui possède un format tel que suit :
C'est grandement simplifié, mais il faut comprendre que dans le fichier texte, on a nombre fixe de classes et un nombre d'arguments variables en fonction de la classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 NomClasse1 Argument1DuPremierObjet,Argument2DuPremierObjet|Argument1DuSecondObjet,Argument2DuSecondObjet| NomClasse2 Argument1DuPremierObjet|Argument1DuSecondObjet|
Mon objectif est tout simplement d'instancier tous les objets d'une classe passée en paramètre à une fonction "LireFichier(String nomFichier, String nomClasse)".
Cette procédure cherche dans le fichier la classe passée en paramètre, et découpe ensuite la ligne qui suit la classe avec StringTokenizer(). Tout cela, je l'obtiens, j'obtiens ce que je désire en affichage (par exemple pour NomClasse2, jobtiens deux tokens, le premier "Argument1DuPremierObjet", le second "Argument2DuSecondObjet").
Maintenant, je voudrais automatiser la création des objets à partir de tout ça. J'ai tenté quelque chose du style
Mais ca ne fonctionne pas, logique, il ne trouve aucune référence à nomClasse par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int cptTokens=0; ligne=tampon.readLine(); StringTokenizer st = new StringTokenizer(ligne,"|"); while((st.hasMoreTokens()) && (cptTokens<st.countTokens())) nomClasse g+cptTokens= new nomClasse(st.nextToken());
Auriez vous une idée, si vous m'avez compris (), pour automatiser tout cela ? Pour donner un exemple concret :
On a dans le fichier les classes Port et Bateau. Un port est composé d'une ref et d'un nom, un bateau d'un ID et d'un nom, et disons... une capacité en m3. On veut créer 1 port, et 2 bateaux. Le fichier texte "donnees.txt" aura donc une tête qui ressemble à ca :
Donc en gros, je voudrais un code qui me permette, en faisant appel dans un premier temps à LireFichier("donnees.txt", "Port"), me crée un truc du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Port 1,"Nantes"|2,"Le Havre"| Bateau 1,"Bateau1",50000|2,"Bateau2",20000|
Vouala, désolé de faire si long... Mais j'aime à être clair
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Port P1= new Port(1, "Nantes"); Port P2= new Port(2, "Le Havre");![]()
Merci bcp pour votre aide![]()
Partager