Concatene 2 txt dans une jtable

Résolu/Fermé
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 7 nov. 2012 à 08:53
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 - 9 nov. 2012 à 06:16
Bonjour, tout le monde!!!




j'ai un soucis ,j'aimerais concaténer 2 fichiers txt ,de sorte a pouvoir les afficher dans une jtable,le soucis c'est qu'il faut que mes 2 fichiers une fois concatene corresponde car mon premier est dans l'ordre alphabétique et l'autre, range du plus petit code ,au plus grand ,je vous laisse les 2 txt au cas ou ,j'avoue que je sèche....
merci a tous


fichier1

FR0000120404;Accor
FR0000120073;Air Liquide
FR0000130007;Alcatel-Lucent
FR0010220475;Alstom
LU0323134006;Arcelor Mittal
FR0000120628;Axa
FR0000131104;Bnp Paribas
FR0000120503;Bouygues
FR0000125338;Cap Gemini
FR0000120172;Carrefour
FR0000045072;Credit Agricole
FR0000120644;Danone
NL0000235190;Eads
FR0010242511;EDF
FR0000121667;Essilor Intl
FR0000133308;France Telecom
FR0010208488;GDF Suez
FR0000120537;Lafarge
FR0010307819;Legrand SA
FR0000120321;L'oreal
FR0000121014;Lvmh
FR0000121261;Michelin
FR0000120693;Pernod-Ricard
FR0000121501;Peugeot
FR0000121485;PPR
FR0000130577;Publicis Groupe
FR0000131906;Renault
FR0000073272;Safran
FR0000125007;Saint Gobain
FR0000120578;Sanofi
FR0000121972;Schneider Electric
FR0000130809;Societe Generale
NL0000226223;Stmicroelectronics
FR0000131708;Technip
FR0000120271;Total
FR0000124711;Unibail-Rodamco
FR0000120354;Vallourec
FR0000124141;Veolia Environ.
FR0000125486;Vinci
FR0000127771;Vivendi


fichier2

FR0000045072;24/07/12;3.05;3.06;2.94;2.94;15477996
FR0000073272;24/07/12;27.21;27.44;26.81;27.045;1054087
FR0000120073;24/07/12;88.50;88.75;87.01;87.01;1009318
FR0000120172;24/07/12;13.385;13.58;13.345;13.385;4580879
FR0000120271;24/07/12;35.655;35.74;34.83;34.83;5144960
FR0000120321;24/07/12;94.24;95.21;93.43;93.52;508762
FR0000120354;24/07/12;34.095;34.705;34.065;34.285;761493
FR0000120404;24/07/12;24.365;24.82;24.225;24.585;594685
FR0000120503;24/07/12;19.645;19.72;19.145;19.145;1013796
FR0000120537;24/07/12;34.295;34.84;34.03;34.545;989761
FR0000120578;24/07/12;61.59;62.02;61.10;61.10;2829891
FR0000120628;24/07/12;9.285;9.297;8.76;8.903;16273676
FR0000120644;24/07/12;48.85;49.11;48.00;48.00;2378158
FR0000120693;24/07/12;84.60;85.45;84.56;84.92;483706
FR0000121014;24/07/12;119.20;120.75;118.75;119.00;818782
FR0000121261;24/07/12;50.47;50.89;49.40;49.62;1248963
FR0000121485;24/07/12;108.70;109.20;107.25;107.40;215924
FR0000121501;24/07/12;6.561;6.58;6.22;6.24;5948107
FR0000121667;24/07/12;69.25;69.25;68.52;68.75;884886
FR0000121972;24/07/12;41.655;42.42;41.275;41.85;1992527
FR0000124141;24/07/12;8.646;8.686;8.391;8.424;3647508
FR0000124711;24/07/12;149.45;150.80;147.60;149.55;426813
FR0000125007;24/07/12;26.33;26.485;26.01;26.06;1969963
FR0000125338;24/07/12;26.24;27.00;25.965;26.685;1167874
FR0000125486;24/07/12;32.99;33.205;32.45;32.46;2569856
FR0000127771;24/07/12;14.565;14.81;14.50;14.50;3999575
FR0000130007;24/07/12;0.932;0.935;0.898;0.906;25340377
FR0000130577;24/07/12;40.00;40.00;39.09;39.105;1063574
FR0000130809;24/07/12;15.795;15.86;15.35;15.40;6172552
FR0000131104;24/07/12;27.095;27.16;26.205;26.46;6512267
FR0000131708;24/07/12;85.87;86.81;84.24;84.58;577048
FR0000131906;24/07/12;33.05;33.25;32.51;32.90;1950398
FR0000133308;24/07/12;10.49;10.50;10.22;10.23;8583467
FR0010208488;24/07/12;17.165;17.23;16.685;16.77;4885555
FR0010220475;24/07/12;25.065;25.575;24.80;24.99;1605652
FR0010242511;24/07/12;15.90;15.93;15.275;15.295;2929085
FR0010307819;24/07/12;26.175;26.22;25.94;25.965;700484
LU0323134006;24/07/12;11.775;11.90;11.615;11.735;6431081
NL0000226223;24/07/12;3.825;3.92;3.683;3.764;5175483
NL0000235190;24/07/12;27.955;28.52;27.635;28.445;1498888
A voir également:

2 réponses

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
7 nov. 2012 à 09:03
Bonjour laurent2403,

Dans les deux fichiers il y a exactement 40 lignes.
Si j'ai bien compris, c'est au fichier 2 que tu veux faire correspondre les noms du fichiers 1 par le biais de l'ISIN ?
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
Modifié par Heliotte le 7/11/2012 à 09:04
As-tu d'autre fichiers, dont la concaténation doit être pareille ?
Dans quel langage ?
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
7 nov. 2012 à 09:04
Bonjour

JTable, ce serait donc en Java
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92 > choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024
7 nov. 2012 à 09:12
Désolé, je ne touche pas au Java.
Bonne programmation.
0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
7 nov. 2012 à 09:16
beh merci quand même heliotte @+
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 7/11/2012 à 09:41
Il faudrait utiliser une Map pour faire coïncider les clés (premiers champs de tes lignes).

Après au niveau des type valeurs je proposerais un String[][], pour avoir une liste des éléments (facile avec des split sur les points- virgules) pour chaque fichier à concaténer.

Voici un exemple :

// Récupération des données
    
String[] nomFichiers = {"fichier1.txt", "fichier2.txt"};

Map<String,String[][]> map = new TreeMap<String,String[][]>();

for (int i=0; i<nomFichiers.length; i++)
{
    Scanner sc = new Scanner(new File(nomFichiers[i]));
    while (sc.hasNextLine())
    {
        String[] tab = sc.nextLine().split(";");
        if (!map.containsKey(tab[0]))
            map.put(tab[0], new String[nomFichiers.length][]);
        map.get(tab[0])[i]=tab;
    }
    sc.close();
}

// Affichage

for (Entry<String, String[][]> entry : map.entrySet())
{
    System.out.println(entry.getKey());
    String[][] matrix = entry.getValue();
    for (int i=0; i<matrix.length; i++)
    {
        for (int j=0; j<matrix[i].length; j++)
            System.out.print(matrix[i][j]+"\t");
        System.out.println();
    }
    System.out.println();
}

// Fusion

LinkedList<ArrayList<String>> data = new LinkedList<ArrayList<String>>();

for (String[][] matrix : map.values())
{
    ArrayList<String> liste = new ArrayList<String>();
    for (int i=0; i<nomFichiers.length; i++)
        liste.addAll(Arrays.asList(matrix[i]));
    data.add(liste);
}

//Affichage

for (ArrayList<String> liste : data)
    System.out.println(liste);
La confiance n'exclut pas le contrôle
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
7 nov. 2012 à 09:49
Remarque : on peut faire mes opérations récupération des données, et fusion, en une seule étape :

String[] nomFichiers = {"fichier1.txt", "fichier2.txt"};

Map<String,ArrayList<String>> map = new TreeMap<String,ArrayList<String>>();

for (String nomFichier : nomFichiers)
{
    Scanner sc = new Scanner(new File(nomFichier));
    while (sc.hasNextLine())
    {
        String[] tab = sc.nextLine().split(";");
        if (!map.containsKey(tab[0]))
            map.put(tab[0], new ArrayList<String>());
        map.get(tab[0]).addAll(Arrays.asList(tab));
    }
    sc.close();
}

//Affichage

for (ArrayList<String> liste : map.values())
    System.out.println(liste);
0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
7 nov. 2012 à 10:03
salut kx ,merci pour ta réponse ,je teste ça après le boulot ...
0
laurent2403 Messages postés 80 Date d'inscription jeudi 11 novembre 2010 Statut Membre Dernière intervention 23 février 2020 2
9 nov. 2012 à 06:16
OK merci kx ça tourne du feu de dieu,maintenant j'aimerais afficher le résultat sur un fichier txt ,je vais essayer ,merci beaucoup pour ton aide @+
0