Bonjour,
Je suis un débutant en soif de connaissance.
J’ai réalisé un petit programme qui me permet de faire une corrélation de données d'un fichier.csv a un autre. Soit :
- Un fichier ayant 3 colonnes : un premier identifiant (il ne nous intéresse pas dans notre cas) un deuxième identifiant et une valeur.
- Un deuxième fichier contenant la liste des identifiants (secondaire), leur valeur possible respective, et une troisième colonne pour leur signification.
Pour résoudre mon problème j’ai fait une lecture séquentielle jusqu'à ce qu’il trouve la bonne valeur a la bonne clé. Ce n’est pas très performant… il existe d’autre moyen je pense mais je ne les trouve pas.
Deuxième question c’est une fois que je trouve la corrélation comment modifier le premier fichier pour ajouter ces données ? Suis-je obliger de recréer un fichier ?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 import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; public class RechercheDetails { public static void main(String[] args) { String normeSap = "D:/Source Test/Détails segment SAP.csv"; String fichier = "D:/Source Test/test/SortieCommandeSAP.csv"; Boolean start = false; // lecture du fichier texte try { InputStream ips1 = new FileInputStream(fichier); InputStreamReader ipsr1 = new InputStreamReader(ips1); BufferedReader br1 = new BufferedReader(ipsr1); String ligneCommande; while ((ligneCommande = br1.readLine()) != null) { String[] norme = ligneCommande.split(";"); InputStream ips2 = new FileInputStream(normeSap); InputStreamReader ipsr2 = new InputStreamReader(ips2); BufferedReader br2 = new BufferedReader(ipsr2); String ligneFormat; while ((ligneFormat = br2.readLine()) != null && !start) { String[] format = ligneFormat.split(";"); if (format[0].equals(norme[1])) { if (format[1].equals(norme[2])){ System.out.println(format[2]); start=true; } } } start = false; br2.close(); } br1.close(); } catch (Exception e) { System.out.println(e.toString()); } } }
Merci