Changement des valeurs d'une variable

Résolu
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013 - 12 sept. 2012 à 00:53
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013 - 12 sept. 2012 à 11:38
Salut, j'espère que vous allez bien

j'ai un problème dans mon projet, et je compte sur votre aide , je vais essayer de bien expliquer mon problème.

alors je travaille une application sous MyEclipse, et comme base de données j'ai des fichiers texte dans un dossier.

l'un de ces fichiers a la forme suivante:
XP15Z42020 ;	59;	BANQUE POPULAIRE DE CASA;	;code1	;	;	XP15Z42020 ;	IMMEUB.H.E;	12.00;	0;	0.00;	20120630;
XP15Z42020E;	59;	BANQUE POPULAIRE DE CASA;	;code1	;	;	XP15Z42020E;	IMMEUB.H.E;	0.00 ;	0;	0.00;	20120630;
XP15Z42020E;	59;	BANQUE POPULAIRE DE CASA;	;code2	;	;	XP15Z42020E;	IMMEUB.H.E;	20.00;	0;	0.00;	20120630;
XP15Z42020E;	59;	BANQUE POPULAIRE DE CASA;	;code2	;	;	XP15Z42020E;	IMMEUB.H.E;	20.00;	0;	0.00;	20120630;


le fichier contient plusieurs lignes biensur.
pour différencier chaque colonne j'utilise la fonction:
FileReader fr = new FileReader(fichierTexte);
BufferedReader br = new BufferedReader(fr);
String ligne = "";

        ligne = br.readLine();
        String[] chaines = ligne.split(";");

pour récupérer la première ligne de la deuxième colonne je fait:
String codeSociete = chaines[1].trim();

car le compteur commence à 0 donc
chaines[0].trim();
correspond à la 1ere colonne ^^
le travail que je doit faire c'est de réaliser des états pour le reporting,en récupérant des données à partir des fichier texte et de faire la mise en page de ces données à l'aide de l'API iText et ensuite imprimer le résultat (l'état) en pdf.

tout marche bien sauf que, pour un état donné, je doit faire une condition sur une variable que je doit remplir a partir du fichier.
je m’explique: pour le fichier en haut j'ai une colonne qui a 2 valeurs: code1 et code2,
pour code1, je doit imprimer la valeur: code1 suivie des autres éléments correspondant a cette valeur dans le fichier txt, ainsi que pour la valeur code2 ...

je doit obtenir un pdf comme suit:

+++++++++++++++++++++++++++++++
+ valeur: code1
+ banque: BANQUE POPULAIRE DE CASA
+++++++++++++++++++++++++++++++
+
+
+ les autres données
+
+
+++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++
+ valeur: code2
+ banque: BANQUE POPULAIRE DE CASA
+++++++++++++++++++++++++++++++
+
+
+ les autres données
+
+
+++++++++++++++++++++++++++++++

je sais pas quelle est la condition que je peut faire sur cette variable, j'ai fait bcp bcp de tests et de conditions mais sans résultat
je sais pas si j'ai arrivé a bien expliquer le problème je l'espère ..
et Merci

5 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
12 sept. 2012 à 08:39
Salut,

Pour commencer, je te conseil de charger le contenu du ton fichier dans une liste : http://www.javafr.com/codes/LIRE-ECRIRE-FICHIERS-TEXTE_52348.aspx

Ensuite, tu créés une classe qui contient toutes les infos de la ligne (je l'appelle Etablissement)

public class Etablissement {

   private String code;
   private String nom;
   // Tu places toutes les informations dont tu as besoin sur chaque ligne

   public Etablissement(String code, String nom, ...){
      this.code=code;
      this.nom=nom;
      //...
   }

   public String getCode(){
      return code;
   }

   public String getNom(){
      return nom;
   }
}


Ensuite, tu vas convertir ta liste de lignes en liste d'établissements :
List<Etablissement> etablissements = new ArrayList<Etablissement>();
for(String s : listeLigne){
   StringTokenizer st = new StringTokenizer(s, ";");
   code=st.nextToken().trim();
   numero=st.nextToken().trim();
   nom=st.nextToken().trim();
   //...
   etablissements.add(new Etablissement(code, nom, ...);
}


Et là, tu auras tous les établissements dans une liste que tu pourras manipuler facilement.

Remarque, tu peux faire une Map avec le code comme clé d'entée...
3
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013
12 sept. 2012 à 10:38
Merci Julien,

mais mon problème c'est comment faire une condition

l'idée que j'ai essayer de faire c'est de remplir un tableau avec toutes les valeurs de la colonne code présentes dans le fichier texte, puis remplir une variable avec la première valeur du tableau(j'ai choisit un tableau car j'ai une seule colonne), soit:
String code = chaines[1].trim();

puis de parcourir tout le tableau, si la valeur est égale à code, il va afficher cette valeur suivie d'autres information, sinn il va afficher la nouvelle valeur suivie des autres informations etc pour chaque valeur de code comme l'illustration que j'ai donné en haut

j'ai fait bcp de test mais j’obtiens des états déformés
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
12 sept. 2012 à 11:16
En fait, je ne comprends pas vraiment ce que tu veux faire.

Une fois que tu as tous les résultats dans une arraylist, tu peux faire des recherches sur les éléments de cette liste en la balayant...
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
12 sept. 2012 à 11:16
En fait, je ne comprends pas vraiment ce que tu veux faire.

Une fois que tu as tous les résultats dans une arraylist, tu peux faire des recherches sur les éléments de cette liste en la balayant...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pink90 Messages postés 34 Date d'inscription lundi 25 avril 2011 Statut Membre Dernière intervention 18 juin 2013
12 sept. 2012 à 11:38
Ouiii vous avez raison je vais remplir une arraylist ça sera mieux, moi je pensait à remplir une tableau de chaines de caractères

Merci bcp
0
Rejoignez-nous