Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1141 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  probleme java et tokenizer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme java et tokenizer

n°1657591
vinc'03
Posté le 13-12-2007 à 10:47:05  profilanswer
 

Bonjour,
alors voila, la j'ai un probleme que je ne sais pas resoudre, mais alors pas du tout (bon en meme temps jsuis débutant..)
Je fais un programme pour décomposer un fichier, et utiliser ses données.
Donc en fait j'ai un fichier de terrains, avec formes, dimensions, lieu ou ils se trouvent avec des references de proprietaires;
Ensuite j'ai un fichier avec les tarifs du metre carré selon le lieu.
Le but est d'afficher les biens de chaque proprietaire sachant que un mm proprietaire peut avoir plusieurs terrains dan sdifferents lieux.
Bref tout va bien, le proramme s'execute sans probleme,mais quand je demande de l'afficher, il m'affiche deux fois le meme proprietaire et m'en oublie un...(avec la premiere fois la bonne surface et la seconde, la surface de celui qui manque )
donc je ne sais pas comment faire.
J'ai essayé de localiser le probleme, on dirait qu'il ne lit pas le proprietaire manquant...
donc concernant les proprio ca donne:
reference forme, dimension1 dimension 2 Lieu
P231 C 12.75 0 Colmar
S304 R 15 20 1Obernai
P231 C 20 0 Barr
S104 R 57.5 52.35 Strasbourg
S442 T 23 32.60 Mulhouse
P231 C 21 0 Nancy
S442 R 73.25 37.10 Paris
P211 T 69.50 55.40 Laval
P231 C 61 0 Poitiers
 
et le programme:
 
import fr.insa.goepp.Lire;
import java.io.* ;
import java.util.* ; // pour StringTokenizer
 
public class Decompose_Chaine
{ public static void main (String args[]) throws IOException
{ String forme, lieu, lieu2,reference ;
int i,j,initialisation=0,c=0,posmini=0;float Dim1, Dim2, Prix;
double S=0,patri=0,P=0;
boolean ajouter, permute;
Proprietaire[]p=new Proprietaire[100];
BufferedReader entree1 = new BufferedReader (new FileReader ("terrains.txt" )) ;
while (true)
{ String ligneLue = entree1.readLine() ;
if (ligneLue == null) break ;
StringTokenizer k = new StringTokenizer (ligneLue, " " ) ;
reference=k.nextToken();
ajouter=true;
if(initialisation==0){
p[0]=new Proprietaire(reference,0);
initialisation=1;
c=++c;
}
 
else{
for(i=0;i<c;++i){
if(reference.equals(p[i].reference)){
ajouter=false;
}
}
if(ajouter=true){
p[c]=new Proprietaire(reference,0);
++c;
}
}
}
entree1.close(); //APPAREMENT CA BUGGE ENTRE LE DEBUT ET LA
 
Si vous avez une idee, je suis preneur.
Merci d'avance de vos réponses
vinc

mood
Publicité
Posté le 13-12-2007 à 10:47:05  profilanswer
 

n°1657603
brisssou
8-/
Posté le 13-12-2007 à 11:05:19  profilanswer
 

pour gagner un peu en lisibilité :

 
Code :
  1. import fr.insa.goepp.Lire;
  2. import java.io.* ;
  3. import java.util.* ; // pour StringTokenizer
  4.  
  5. public class Decompose_Chaine {
  6.     public static void main(String args[]) throws IOException {
  7.         String forme, lieu, lieu2, reference;
  8.         int i, j, initialisation = 0, c = 0, posmini = 0;
  9.         float Dim1, Dim2, Prix;
  10.         double S = 0, patri = 0, P = 0;
  11.         boolean ajouter, permute;
  12.         Proprietaire[] p = new Proprietaire[100];
  13.         BufferedReader entree1 = new BufferedReader(new FileReader("terrains.txt" ));
  14.         while (true) {
  15.             String ligneLue = entree1.readLine();
  16.             if (ligneLue == null)
  17.                 break;
  18.             StringTokenizer k = new StringTokenizer(ligneLue, " " );
  19.             reference = k.nextToken();
  20.             ajouter = true;
  21.             if (initialisation == 0) {
  22.                 p[0] = new Proprietaire(reference, 0);
  23.                 initialisation = 1;
  24.                 c = ++c;
  25.             } else {
  26.                 for (i = 0; i < c; ++i) {
  27.                     if (reference.equals(p[i].reference)) {
  28.                         ajouter = false;
  29.                     }
  30.                 }
  31.                 if (ajouter = true) {
  32.                     p[c] = new Proprietaire(reference, 0);
  33.                     ++c;
  34.                 }
  35.             }
  36.         }
  37.         entree1.close(); // APPAREMENT CA BUGGE ENTRE LE DEBUT ET LA
  38.     }
  39. }


Message édité par brisssou le 13-12-2007 à 11:08:14

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1657604
brisssou
8-/
Posté le 13-12-2007 à 11:09:21  profilanswer
 

fait tourner ton algo à la main, j'ai l'impression qu'il y a une problème avec l'utilisation de la variable initialisation et la ligne 22

 

à vue de nez


Message édité par brisssou le 13-12-2007 à 11:10:03

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1657605
brisssou
8-/
Posté le 13-12-2007 à 11:11:38  profilanswer
 

et si tu faisais une Map<reference, Propriétaire>, ça te permettrait pas de savoir rapidement si tu as déjà un enregistrement pour ce gars ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1657609
vinc'03
Posté le 13-12-2007 à 11:22:26  profilanswer
 

excuse moi mais c'est quoi une map exactement?
jsuis vraiment nul...

n°1657610
vinc'03
Posté le 13-12-2007 à 11:22:55  profilanswer
 

excuse moi mais une map c'est quoi? je suis preneur de tousles trucs et astuces!

n°1657613
vinc'03
Posté le 13-12-2007 à 11:29:12  profilanswer
 

en fait j'ai fait un println pour savoir ce qu'il mettait dans le tableau et...il ne met pas le P211..
Pour le initialisation, jcomprends pa trop le pb mais pour le ajouter..en fait si ajouter=false, est ce que ca empeche de retourner dans le while (bon ca m'etonnerait parce que tout se fait bien sauf un gars qui bugge mais bon je neglige aucune piste...)

n°1657620
brisssou
8-/
Posté le 13-12-2007 à 11:50:29  profilanswer
 

la ligne 22 c'est ça : p[0] = new Proprietaire(reference, 0);
 
tu enregistres toujours en P[0], ça te choque pas ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1657660
vinc'03
Posté le 13-12-2007 à 13:05:53  profilanswer
 

ben en fait je ne refais pas toujours en p[0] puiisque apres initialisation=1 donc ca repasse pas dans cette boucle si?

n°1657675
brisssou
8-/
Posté le 13-12-2007 à 13:30:28  profilanswer
 

quelle est la différence entre ton initialisation, et ta non-initialisation ?
ton initialisation semble inutile, non ?
et si !ajouter, tu n'ajoute pas la nouvelle propriété en plus, non ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
mood
Publicité
Posté le 13-12-2007 à 13:30:28  profilanswer
 

n°1657680
vinc'03
Posté le 13-12-2007 à 13:38:05  profilanswer
 

ben c pour mettre un p[0]..l'initialisation de l'initialisation ou l'initialisation tout court? Parce que c'est pour forcer à d'abord passer dans la premiere boucle, puis ensuite dans la seconde..

n°1657763
vinc'03
Posté le 13-12-2007 à 14:56:53  profilanswer
 

Bon j'ai essayé apparemment il y avait un probleme dans mon fichier txt...soit..lol
en tout cas tout maarche!
Merci de votre aide


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  probleme java et tokenizer

 

Sujets relatifs
[C++] [resolu] Problème de templatesProblème affichage XML dans IE
Petit problème avec mon algo de tri !problème de connexion oracle 9i
[VBA] probleme de pièce jointe outlook[Perl] Problème de syntaxe
probleme de droit pour acceder a une page avec site nuked clan[JAVA] Plugin Eclipse - Comment créer un nouveau Projet
[Resolu] Probleme de hauteur de tableauprobleme java bean
Plus de sujets relatifs à : probleme java et tokenizer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR