Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation
Langages de programmation Forum général sur les langages de programmation, sur la POO, opinions, choix, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 02/12/2012, 11h45   #1
eskabo
Invité de passage
 
Homme
Développeur informatique
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 2
Points : 2
Par défaut Découper String en tableau. De quelle sorte ?

Bonjour,

On me demande d'analyser un fichier de log (.dat) pour en extraire des lignes bien précises puis certains champs de ces lignes.
Je réussi à extraire les lignes qui m'intéressent grâce aux regex.
Voici le genre de String :

R|DA|DA0001436\1000|A0001436-100-01TO110D0005|DA0001436\1000|0930930033703|||0000000001.00000|NB|||20130128|LO1|MPR|...

Comme vous le constatez, cette String est découpée en champs séparés par des "|"
J'hésite quand à la meilleur méthode à adopter pour mettre ces strings en tableau : utiliser un simple tableau, une hastable, hashmap... ? pour pouvoir ensuite ne garder que les champs qui m'intéressent et les écrire dans un fichier .csv

Quelle serait, selon vous, la méthode la plus efficace ?

Mon autre problème est que pour d'autres String du même fichier le séparateur n'est pas un tube mais un ";" :

A24342;20121015;OF036091\20;FMG;FM5L4CA1B;SS;9;...

Je compte utiliser un "replace" pour transformer les différents séparateurs en un seul.
Suis-je sur la bonne piste ?
(je sors de formation et c'est ma première mission pro. J'aimerais la réussir...)

PS : je code en Java
eskabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 10h21   #2
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 380
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 380
Points : 32 015
Points : 32 015
Envoyer un message via MSN à Médinoc
Franchement, chaque champ a une signification et la string possède un format bien défini (ou deux formats bien définis), non?

Dans ce cas, le mieux serait de séparer en simple tableau avec split(), puis mettre chaque élément du tableau dans le champ correspondant d'une classe...
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 21h25   #3
eskabo
Invité de passage
 
Homme
Développeur informatique
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 2
Points : 2
Merci pour ta réponse Médinoc,

Effectivement : je n'ai mis que 2 String en exemple mais il y en a bien d'autres sortes.
En fait, le fichier que je dois traiter (entre 25 000 et 35 000 lignes, ça dépend des jours) est composé de "blocs" correspondant aux rapports de différents traitements.
Presque chaque bloc a un style de String différent et un encodage différent (ANSI, UTF8).

Comme je dois générer un fichier (nettoyé des lignes et colonnes "inutiles") pour chaque bloc, je pense créer une class pour le traitement de chacun d'entre eux, ça sera plus évolutif si je dois ensuite créer des class pour de nouveaux blocs.

Je compte donc pour chaque bloc :
- mettre les lignes qui m'intéressent dans un tableau, comme tu me le conseille,
- sélectionner les colonnes que je dois garder,
- appeler une méthode pour les écrire dans un fichier.

Pas d'hérésie dans mes propos ?

Je ne manquerai pas de vous tenir informé de l'évolution de mon application.
eskabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2012, 23h27   #4
eskabo
Invité de passage
 
Homme
Développeur informatique
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 2
Points : 2
Bon...

J'arrive à découper ma string en tableau pour la mettre dans un arrayList. Mais j' écris les string successives toujours sur la même ligne :
lorsque je découpe mes string elles s'affichent bien dans la console mais quand je veux écrire l'arrayList j'ai la même adresse mémoire de colonne pour chaque ligne.
J'ai beau chercher sur le net , je tourne en rond.

Le code : (j'ai mis des out.print"index ligne et colonne" pour essayer de comprendre)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package test_split;

import java.io.*;
import java.util.*;

public class Test_split {

    public static void main(String[] args) {
        //String fichierLu = "ZINT315B_20121120.dat";
        String fichierLu = "1_ZINT315B_20121120.dat";
        String fichierEc = "Traitement_Fichier_Ecriture.csv";
        BufferedReader fluxEntree;
        
        String ligneLue = "";
        String[] ligneSplit = {};
        List<String[]> aLignes = new ArrayList<String[]>();
        int indexLigne=0, indexColonne=0;
        Iterator iter = aLignes.listIterator();

        try {
            fluxEntree = new BufferedReader(new FileReader(new File(fichierLu)));
            
            
            
            while (ligneLue != null) {
                
                if (ligneLue.matches("R.*")) {   
                    ligneLue = ligneLue.replace("|", ",!");
                    ligneSplit = ligneLue.split("!");
                    System.out.println(" index aLignes : "+indexLigne);
                    
                    for (indexColonne=0; indexColonne<ligneSplit.length; indexColonne++) {
                        System.out.println(ligneSplit[indexColonne]+"         index colonne : "+indexColonne);
                        aLignes.add(indexLigne, ligneSplit.clone());//aLignes.add(aLignes.indexOf(iter), ligneSplit.clone());
                    }
                    aLignes.iterator().next();
                    indexLigne++;
                }//fin if
                
                System.out.println("--------------------------------------------");
                ligneLue = fluxEntree.readLine();
                
            }//fin while
        }
        catch (Exception eLect) {
            System.out.println("Erreur lecture flux entree :"+eLect.getMessage());
        }   
        
        try {
            Writer fluxSortie = null;
            fluxSortie = new PrintWriter(new BufferedWriter(new FileWriter(fichierEc))); 
            while (iter.hasNext()) {
                for (int k=0; k<indexColonne; k++) {
                System.out.print("index colonne :  "+k+"  ");
                System.out.println(aLignes.get(k).toString());
                fluxSortie.write(ligneSplit[k].toString());
                }
            iter.next();
            }
        }
        catch (Exception eIt) {
            System.out.println("erreur ecr :"+eIt.getMessage());
        }
        
    }//fin main
    
}
et la console (certains champs ne contiennent rien donc c'est normal qu'il y ait juste les , devant "index ...")
Le premier affichage, lorsque je rempli mon arrayList est correcte (tous les champs de toutes les lignes)

Citation:
...
, index colonne : 39
, index colonne : 40
--------------------------------------------
index aLignes : 2
R, index colonne : 0
UO_S001, index colonne : 1
...
, index colonne : 39
, index colonne : 40
--------------------------------------------
index colonne : 0 [Ljava.lang.String;@246bc73b
index colonne : 1 [Ljava.lang.String;@1fe5052b
...
index colonne : 39 [Ljava.lang.String;@7f54e38b
index colonne : 40 [Ljava.lang.String;@1e26fbfc
erreur ecr :null
BUILD SUCCESSFUL (total time: 0 seconds)
Si quelqu'un a une idée...
eskabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 19h06   #5
eskabo
Invité de passage
 
Homme
Développeur informatique
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 2
Points : 2
J'ai un peu l'impression de faire un monologue, mais bon...
J'ai trouvé une solution beaucoup plus simple : un arrayList de String dans lesquelles j'ai remplacé les tubes "|" par des ";" et ça marche.
Même si j'aurais préféré un tableau pour pouvoir sélectionner les colonnes.

Bref avec ça, ça marche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package analyse_fichier;

import java.util.*;
import java.io.*;

public class Analyse_Fichier {

    public static void main(String[] args) {
        String fichierLu = "fichier_source.dat";
        Date date = new Date();
        String sDate = date.toString().replace(":", "-");
        String fichierEc = "fichier_genere_"+sDate+".csv";
        
	String ligneLue = "";
        BufferedReader fluxEntree;
        List<String> aLignes = new ArrayList<String>();
        int NbLigneSource=0, NbLignExtr=0, NbLignErr=0;
        boolean bOk = false;
        
        try {
            fluxEntree = new BufferedReader(new FileReader(new File(fichierLu)));
            
            while (ligneLue != null) { 
                try {
                    if (ligneLue.matches("/filevaults/.*/ZINT315.*")) {
                        bOk = true;
                        aLignes.add(ligneLue);
                        NbLignExtr++;  
                    }
                    
                    if (ligneLue.matches("")) {
                        bOk = false;
                    }
                    
                    if (bOk == true) {
                        if (ligneLue.matches("R.*")) { 
                            aLignes.add(ligneLue.replace("|", ";"));
                            NbLignExtr++;
                            NbLignErr++;
                        }
                    }
                    
                    ligneLue = fluxEntree.readLine();
                    NbLigneSource++;
                }
                catch (Exception eLec) {
                    System.out.println("Erreur lecture ligne : " + eLec.getMessage());
                }
            }//fin while ligne
            
            try {
                Analyse_Fichier.ecrireFichier(fichierEc, aLignes);
            }
            catch (Exception eEc){
                System.out.println("Erreur ecriture : " + eEc.getMessage());
            }
            fluxEntree.close();
            
            System.out.println("Fin de fichier");
            System.out.println("Nombre lignes fichier source : " + NbLigneSource);
            System.out.println("Nombre lignes extraites : " + NbLignExtr);
            System.out.println("Nombre lignes d'erreurs : " + NbLignErr);
            
        }   
        catch (FileNotFoundException eFnt) {
            System.out.println("Fichier non trouvé" + eFnt.getMessage());
        }
        catch (IOException eFc) {
            System.out.println(eFc.getMessage());
        }         
    } //fin main
    
    
    public static void ecrireFichier(String fichierEc, List<String> aLignes){
        Writer fluxSortie = null;
		try {
			fluxSortie = new PrintWriter(new BufferedWriter(new FileWriter(fichierEc)));
			for(int i=0;i<aLignes.size();i++){
				fluxSortie.write(aLignes.get(i)+"\n");
			}
		}
		catch(IOException exEc){
			System.out.println("Erreur écriture : " + exEc.getMessage());
		}
		try {
			fluxSortie.close();
		}
		catch(IOException exFr){
            System.out.println("Erreur fermeture flux de sortie : " + exFr.getMessage());
        }
    } //fin ecrireFichier

} //fin class Analyse_Fichier
Si quelqu'un a une solution pour sélectionner les colonnes, je suis toujours preneur.
eskabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2012, 22h22   #6
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 380
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 380
Points : 32 015
Points : 32 015
Envoyer un message via MSN à Médinoc
Euh, tu peux sélectionner les colonnes avec un arraylist aussi, non?

Enfin c'était bizarre ton truc, je n'ai pas vraiment compris le problème.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 19h46   #7
eskabo
Invité de passage
 
Homme
Développeur informatique
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 2
Points : 2
bonjour Médinoc et merci pour ton suivi,

Je récapitule : j'arrive à faire une liste de mes lignes lues dans mon fichier .dat et à les écrire dans un fichier .cvs tout simplement en remplaçant le séparateur de champs "|" par un ";".

Voici les lignes de code concernées :
Code :
1
2
3
List<String> aLignes = new ArrayList<String>();
if (ligneLue.matches("R.*")) {
    aLignes.add(ligneLue.replace("|", ";"));
et j'appelle ensuite ma méthode pour écrire mon fichier csv. Ça, ça marche.

Mais j'aurais aussi besoin de mettre ces lignes en tableau pour des traitements ultérieurs.
Mon idée était donc de créer un autre ArrayList mais de String[] et de Spliter chaque ligne. Mais là, je bloc...
J'ai pourtant bien rajouter une boucle dans la boucle "tant que ligne suivante" pour traiter chaque champ de la ligne.
Je ne trouve pas comment déclarer puis créer mon tableau avec un nombre de colonne qui n'est connu qu'au traitement de la première ligne.

J'ai aussi essayé avec StringTokenizer mais toujours bloqué. C'est pourtant pas faute d'avoir cherché sur le net et essayé toutes sortes de choses.

J'ai aussi essayé en créant un tableau à 2 dimensions mais rien à faire. Sachant que le nombre de lignes et de colonnes n'est pas connu au départ et que certains champs de mes lignes splitées sont vides.

Les lignes de mon arrayList que je voudrais splitter pour faire un arrayList<String[]> :
Citation:
ArrayList :
R|UO_S001|LO1|.........|2020567||La t�che <FM3L6S301> est ferm�e.||||
R|UO_S001|LO1|.........|2020464||La t�che <FM3L6S301> est ferm�e.||||
R|UO_S001|LO1|.........|2020460||La t�che <FM3L6S301> est ferm�e.||||
Le dernier code que j'ai essayé :
Code :
1
2
3
4
5
6
7
8
9
10
11
List<String[]> tLignes = new ArrayList<String[]>();
if (ligneLue.matches("R.*")) {
    aLignes.add(ligneLue.replace("|", ";"));
    StringTokenizer st = new StringTokenizer(ligneLue, "|");
    String[] tLigneCoup = new String[st.countTokens()] ;
    while (st.hasMoreTokens()) { 
        tLigneCoup[indexCol] = st.nextToken();
        System.out.println(tLigneCoup[indexCol]);
        indexCol++;
    }
    tLignes.add(tLigneCoup);
et lecture de l'arrayList<String[]>
Code :
1
2
3
4
5
for (int j=0; j<tLignes.size(); j++) {
    tLignes.get(j);
    for (int k=0; k<indexCol; k++) {
        System.out.println(tLignes.get(k).toString());
    }
J'ai un problème de boucle et de syntaxe, c'est sur, mais où ?

J'ai déjà fait des ArrayList<String[]> et des tableaux à 2 dimensions mais jamais en ne connaissant pas le nombre de colonnes au départ ni en Splitant une String et là, je rame.

Je pense avoir déjà été plus près du but qu'avec ce dernier code mais j'ai fait tellement de tests différents que je n'ai pas tout gardé.

Votre aide est donc vraiment la bienvenue !
eskabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 06h55   #8
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 380
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 380
Points : 32 015
Points : 32 015
Envoyer un message via MSN à Médinoc
Déjà, pourquoi utiliser un StringTokenizer quand tu peux utiliser String.split?
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 11h53   #9
eskabo
Invité de passage
 
Homme
Développeur informatique
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 2
Points : 2
J'ai essayé avec le Split mais Split("|") = Split à chaque caractère.
J'ai donc essayé avec ligneLue = ligneLue.replace("|", ";").
Là ça marche - mais je pense que je fais une erreur soit dans ma boucle de remplissage, soit dans ma boucle de lecture.

Remplissage :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
while (ligneLue != null) {
    indexCol=0;
    if (ligneLue.matches("R.*")) { //je test si ma ligne commence par R
        ligneLue = ligneLue.replace("|", ";");
        aLignes.add(ligneLue); //je rempli ArrayList aLignes pour fichier csv
                            
        //boucle pour remplir ArrayList[] tLignes pour traitements
        for (int i=0; i<ligneLue.length(); i++) { 
            tLignes.add(indexCol, ligneLue.split(";"));
            indexCol++;
         }
    }
}
Lecture :
Code :
1
2
3
4
5
6
for (int j=0; j<tLignes.size(); j++) {
    tLignes.get(j);
    for (int m=0; m<indexCol; m++) {
        System.out.println(tLignes.get(m));
    }
}
Merci vraiment pour ton aide.
eskabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 20h43   #10
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 380
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 380
Points : 32 015
Points : 32 015
Envoyer un message via MSN à Médinoc
Citation:
Envoyé par eskabo Voir le message
J'ai essayé avec le Split mais Split("|") = Split à chaque caractère.
Ah, ce doit être le coup du split() Java qui prend une regex en paramètre au lieu d'une chaîne simple.

Je ne connais que peu le Java, mais je pense que tLignes.get(j); tout seul ne fait pas grand-chose.

Code Java :
1
2
3
4
5
6
for (int j=0; j<tLignes.size(); j++) {
    String[] ligneCourante = tLignes.get(j);
    for (int m=0; m<ligneCourante.size(); m++) { //Ou un truc équivalent, je ne sais plus comment marchent les tableaux Java
        System.out.println(ligneCourante.get(m));
    }
}
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2012, 12h16   #11
eskabo
Invité de passage
 
Homme
Développeur informatique
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 2
Points : 2
Merci beaucoup Médinoc, j'y suis enfin arrivé

Pour le Split, c'est surement comme tu dis car ça marche nickel sauf avec le tube ("|").

Pour le reste, je faisais une boucle de trop au remplissage.

Je déclare et créé mes ArrayList (une de String pour le csv et une de String[] pour les traitements) :
Code :
1
2
List<String> aLignes = new ArrayList<String>();
ArrayList<String[]> tLignes = new ArrayList<String[]>();
Je les rempli dans ma boucle tant que ligne suivante :
Code :
1
2
3
4
5
6
if (ligneLue.matches("R.*")) { //je test si ma ligne commence par R
    ligneLue = ligneLue.replace("|", ";"); //je remplace | par ;
    aLignes.add(ligneLue); //je rempli ArrayList aLignes pour fichier csv
                     
    tLignes.add(ligneLue.split(";")); //je rempli ArrayList[] tLignes pour traitements
}
et enfin les boucles pour l'affichage de tLignes :
Code :
1
2
3
4
5
6
for (int j=0; j<tLignes.size(); j++) {
    String[] ligneCourante = tLignes.get(j);
    for (int m=0; m<ligneCourante.length; m++) {
        System.out.println(ligneCourante[m]);
    }
}
Grâce à String[] ligneCourante = tLignes.get(j); j'ai pu constater que j'écrivais plusieurs fois la même ligne et que j'avais donc une boucle de trop au remplissage.
Maintenant j'arrive aussi à n'afficher qu'une colonne de mon ArrayList de tableaux (le but de ce code en fait) :
Code :
1
2
for (int r=0; r<tLignes.size(); r++)
    System.out.println(tLignes.get(r)[22]); //récupération colonne 22
Merci vraiment Médinoc. Je commençais à désespérer de ne jamais y arriver...
eskabo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h00.


 
 
 
 
Partenaires

Hébergement Web