Changement des valeurs d'une variable [Résolu]

Signaler
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
-
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013
-
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

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
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...
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013

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
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
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...
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
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...
Messages postés
34
Date d'inscription
lundi 25 avril 2011
Statut
Membre
Dernière intervention
18 juin 2013

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