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

pink90 34 Messages postés lundi 25 avril 2011Date d'inscription 18 juin 2013 Dernière intervention - 12 sept. 2012 à 00:53 - Dernière réponse : pink90 34 Messages postés lundi 25 avril 2011Date d'inscription 18 juin 2013 Dernière intervention
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 12 sept. 2012 à 08:39
3
Merci
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...

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_Julien39
pink90 34 Messages postés lundi 25 avril 2011Date d'inscription 18 juin 2013 Dernière intervention - 12 sept. 2012 à 10:38
0
Merci
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
Commenter la réponse de pink90
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 12 sept. 2012 à 11:16
0
Merci
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...
Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 12 sept. 2012 à 11:16
0
Merci
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...
Commenter la réponse de cs_Julien39
pink90 34 Messages postés lundi 25 avril 2011Date d'inscription 18 juin 2013 Dernière intervention - 12 sept. 2012 à 11:38
0
Merci
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
Commenter la réponse de pink90

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.