Bonjour,
Je voudrais avoir un avis à propos d’un csv à importer et parser sous java pour consécutivement utiliser les valeurs pour les calculs.
Voilà la sortie fichier que j’ai déjà importé et modifier pour avoir la forme voulue :
Voilà mon code commenté qui m’a permis d’avoir cette sortie en haut :[[ZZW00011604], [2009], [01], [AAAA], [289,289,283,283,289,289,278,267,272,278,267,278,267,267,278,267,267,272,272,272,278,272,267,267,267,278,272,272,272,272,272]]
[[ZZW00011604], [2009], [01], [BBBB], [217,228,222,233,222,222,228,217,222,183,189,194,161,183,178,222,211,211,194,217,217,217,211,211,200,222,217,211,222,206,217]]
[[ZZW00011604], [2009], [01], [CCCC], [0,30,0,0,25,41,0,0,0,0,56,0,8,0,0,0,0,0,3,0,51,0,53,0,10,15,41,0,86,28,15]]
[[ZZW00011604], [2009], [01], [DDDD], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
[[ZZW00011604], [2009], [01], [EEEE], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]
[[ZZW00011604], [2009], [01], [FFFF], [-9999,1,-9999,1,1,1,-9999,1,-9999,-9999,1,1,1,-9999,-9999,-9999,-9999,1,1,1,1,-9999,1,-9999,1,1,1,1,1,1,1]]
[[ZZW00011604], [2009], [02], [AAAA], [267,278,272,267,278,278,278,267,278,267,272,267,261,261,261,267,278,272,278,278,283,272,272,267,267,267,267,272,-9999,-9999,-9999]]
[[ZZW00011604],
Ce que je veux faire, c’est pour chaque id_fichier / annee / mois / variable, faire une itération sur l’ensemble des jours du mois, afin de calculer pour chaque jours par exemple : AAAA+BBBB+CCCC
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; public class ReadFileBis01 { public ReadFileBis01() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try (BufferedReader br = new BufferedReader(new FileReader("C:\\Donnees_base\\ZZW00011604.dly"))) { String sCurrentLine; while ((sCurrentLine = br.readLine()) != null){ //System.out.println(sCurrentLine); //test le suivant; String ar1 = new String(); String ar2 = new String(); String ar3 = new String(); String ar4 = new String(); String ar8 = new String(); String ar9 = new String(); try { ar1 = sCurrentLine.substring(0, 11); //id_fichier ar2 = sCurrentLine.substring(11, 15); //annee ar3 = sCurrentLine.substring(15, 17); //mois ar4 = sCurrentLine.substring(17, 21); //variable String ar5 = sCurrentLine.substring(21); //jours du mois String ar6 = ar5.replace("X",""); //j'elimine les separateurs X String ar7 = ar6.replace("T",""); //j'elimine info "T" ar8= ar7.trim();//supprime espace de debut et de fin ar9 = ar8.replaceAll(" +",",");//remplace espace par virgure pour les jours du mois } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ArrayList<ArrayList<String>> matrix = new ArrayList<ArrayList<String>>(); ArrayList<String> al = new ArrayList<String>(); ArrayList<String> al1 = new ArrayList<String>(); ArrayList<String> al2 = new ArrayList<String>(); ArrayList<String> al3 = new ArrayList<String>(); ArrayList<String> al4 = new ArrayList<String>(); ArrayList<String> al5 = new ArrayList<String>(); matrix.add(al1); matrix.add(al2); matrix.add(al3); matrix.add(al4); matrix.add(al5); matrix.get(0).add(ar1); matrix.get(1).add(ar2); matrix.get(2).add(ar3); matrix.get(3).add(ar4); matrix.get(4).add(ar9); System.out.println(matrix); //cette bouble renvoie une erreur outofbound exception; for (int i=0; i<ar9.length(); i++) { ArrayList<String> items = new ArrayList<String>(Arrays.asList(ar9.split(","))); //System.out.println(items.get(i)); } } br.close();//Close the stream to free the memory } catch (IOException e){ e.printStackTrace(); } } }
Le type de « variable » doit être interger, mais je ne peux pas le parcourir dans une boucle dans ce cas.
Voilà visuellement, ce à quoi le tableau ressemble. Je ne m’intéresse pas à un affichage du tableau tel quel, mais plus à pouvoir parcourir le tableau et de pouvoir faire les calculs désirés.
Il faut noter qu’il n’existe qu’un seul `id_fichier` et une seule `annee` dans le fichier à traiter. Je garde ces variables, car ce sont elles qui vont me permettre de distinguer les calculs effectuer dans le fichier en exemple, avec d’autres fichiers que je vais inclure par la suite. Merci de vos suggestions.id_fichier....ZZW00011604....ZZW00011604....ZZW00011604....ZZW00011604...
Annees.........2009..................2009...................2009...................2009.....................
Mois.............1........................1.........................1.........................1...........................2…………..3
Variable........AAAA.................BBBB...................CCCC..................DDDD...................AAAA.......BBBB
.....................289………………....217………………....0……………………....0………………..........0…………..0
.....................289………………....228………………....30…………………....0…………………..…....0…………..22
.....................283………………....22………………......0……………………....0……………....……....3…………. 13
.....................283………………....233………………....0………………….…...0……………….……....0………....55
……..
……..
………
…….dernier.jour.du.mois








Répondre avec citation
Partager