Bonjour, c'est le code complet de mon programme dont vous avez une idée je pense, en fait je veux parcourir ce fichier
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156 import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.Array; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Scanner; import java.util.Set; import java.util.stream.Collectors; public class chronique { public static String[][] readCSV(String nomFichier, char c, Charset charset) throws IOException { return Files.lines(Paths.get(nomFichier), charset) .map(ligne-> ligne.split(String.valueOf(c))) .toArray(String[][]::new); } public static int[][] readIntMatrix(String nomFichier, char c) throws IOException { return Files.lines(Paths.get(nomFichier)) .map(ligne-> Arrays.stream(ligne.split(String.valueOf(c))) .mapToInt(Integer::parseInt) .toArray()) .toArray(int[][]::new); } public static int[][] readIntMatrix(String nomFichier, char c, char endOfLine) throws IOException { return Files.lines(Paths.get(nomFichier)) .flatMap(ligne-> Arrays.stream(ligne.split(String.valueOf(endOfLine)))) .filter(line->line.trim().length()>0) .map(String::trim) .map(ligne-> Arrays.stream(ligne.split(String.valueOf(c))) .mapToInt(Integer::parseInt) .toArray()) .toArray(int[][]::new); } static String Acces(int nb, List<List<String>> liste) { if (nb < liste.size()) { String str = liste.get(nb).toString(); return str; } else { return new String(); } } public static List<String> TimeStamp(String [] item, String[] ligne) { Set<String> valeursAvantTimeStamp = new HashSet<>(); List<String> list = new ArrayList<>(); for(int j=0; j<ligne.length; j++) { if ( (j+1)%11==0 ) { // la valeur est un timestamp for(String x : item) { if ( valeursAvantTimeStamp.contains(x)) { list.add(ligne[j]); } valeursAvantTimeStamp.clear();// on vide le set pour continuer } } else { // la valeur n'est pas un timestamp valeursAvantTimeStamp .add(ligne[j]); // on stocke la valeur } } return list; } public static void main(String[] args) throws IOException, NumberFormatException { String fileName = "C:\\Users\\asus\\Desktop\\spmf\\sequences.csv"; File file = new File(fileName); List<List<String>> lines = new ArrayList<>(); Scanner inputStream; try { inputStream = new Scanner(file); while (inputStream.hasNext()) { String line = inputStream.next(); String[] values = line.split(";"); lines.add(Arrays.asList(values)); } inputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } String[][] tableau1 = readCSV("C:\\Users\\asus\\Desktop\\spmf\\frequent-seq.txt", ',', StandardCharsets.UTF_8); int[][] matrix = readIntMatrix("C:\\Users\\asus\\Desktop\\spmf\\lignes.txt", ' '); List<Integer> sortedList=new ArrayList<>(); // List list=new LinkedList(); List<String> list = new ArrayList<>(); String[] s1 = new String[1000]; String [] array = new String[lines.size()]; List<String> result = new ArrayList<>(); String[] ary = new String[0]; for(int i=0; i<3; i++) { for(int j=0; j<matrix[i].length; j++) { result.add(Acces(matrix[i][j], lines)); } } for(int h=0; h<result.size(); h++) { ary = result.get(h).split(","); // System.out.println(result.get(h)); for(int a=0; a<3; a++) { for(int b=0; b<tableau1[a].length; b++) { s1= tableau1[a][b].split(" "); list=TimeStamp(s1, ary); if (list.isEmpty() == false) { System.out.println("timestamp de "+tableau1[a][b]+" est"+list);} } } } } }et pour chaque ligne je récupère la ligne qui a comme indice ces valeurs là, c'est à dire j'ai un autre fichier et je vais par exemple accéder au premier lieu a la 5ème ligne et je la récupère, ensuite j'accède aux lignes des indices 1 7 11 13 14 16 et je les récupère et ainsi de suite. ensuite j'ai ce fichier
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 5 1 7 11 13 14 16 0 1 4 7 8 11 15 0 1 3 4 5 7 11 13 0 1 3 4 5 7 11 13 0 1 3 4 5 7 11 13 0 1 3 4 5 7 11 13 0 1 3 4 5 7 11 13 0 1 3 4 5 7 11 13 0 1 3 4 5 7 11 13 0 1 3 4 5 7 11 13 1 3 4 5 8 11 13 15 1 3 4 5 8 11 13 15 1 3 4 5 8 11 13 15 1 3 4 5 8 11 13 15 1 3 4 5 8 11 13 15 1 3 4 5 8 11 13 15 1 3 4 5 8 11 13 15 1 3 4 5 11 13 14 15 1 3 4 5 11 13 14 15 1 3 4 5 11 13 14 15 1 3 4 5 11 13 14 15 1 3 4 5 11 13 14 15 1 3 4 5 11 13 14 15 1 4 5 7 11 13 14 15 1 4 5 7 11 13 14 15 1 4 5 7 11 13 14 15 1 4 5 7 11 13 14 15 1 4 5 7 11 13 14 15 1 4 5 7 11 13 14 15 1 4 5 7 8 11 14 15 1 4 5 7 8 11 14 15 1 4 5 7 8 11 14 15 1 3 5 7 11 13 14 15 1 3 5 7 11 13 14 15 1 4 5 7 8 11 13 15 1 4 5 7 8 11 13 15 1 4 5 7 8 11 13 15 1 4 5 7 8 11 13 15 0 1 3 4 5 11 13 15 0 1 3 4 5 11 13 15 1 3 4 5 7 11 13 15 1 3 4 5 7 11 13 15 0 1 4 5 7 8 11 15 0 1 4 5 7 8 11 15 1 3 4 5 7 13 14 15 0 1 2 4 7 8 11 15 0 1 3 4 5 7 11 13 16 0 1 3 4 5 8 11 13 15 0 1 3 4 5 8 11 13 15 4 5 6 7 8 10 11 12 15 1 4 5 7 8 11 13 14 15 1 4 5 7 8 11 13 14 15 1 4 5 7 8 11 13 14 15 0 1 3 4 5 7 11 13 15 0 1 4 5 7 8 11 14 15 0 1 4 5 7 8 11 14 15 1 3 4 5 6 11 13 14 15 0 1 3 7 8 9 11 14 15 0 1 3 7 8 9 11 14 15 1 3 4 5 7 11 13 14 15 1 3 4 5 7 11 13 14 15 1 3 4 5 7 11 13 14 15 1 3 4 5 7 11 13 14 15 1 3 4 5 7 8 11 13 14 1 4 5 7 8 11 13 14 15 1 2 3 4 5 6 11 13 14 1 2 3 4 5 6 11 13 14 0 1 3 4 5 7 8 11 13 0 1 3 4 5 7 8 11 13 0 1 3 4 5 7 8 11 13 0 1 3 4 5 7 8 11 13 0 1 3 4 5 7 8 11 13 0 1 3 4 5 7 11 13 14 0 1 3 4 5 7 11 13 14 0 1 3 4 5 7 8 11 13 15 0 1 3 4 5 7 8 9 11 15 0 1 3 4 5 7 8 9 11 15 1 3 4 5 6 7 11 12 13 15 1 3 4 5 6 7 8 9 11 14 15 1 2 3 4 5 6 7 11 12 14 15 1 2 3 4 5 6 7 11 12 14 15 0 1 2 3 4 5 6 8 9 13 14 15 0 1 2 3 4 5 6 8 9 13 14 15 1 2 3 4 5 6 7 8 9 13 14 15 0 1 3 4 5 6 7 8 9 13 14 15 1 2 3 4 5 6 7 11 12 14 15 16 1 2 3 4 5 6 7 11 12 14 15 16 0 1 3 4 5 6 7 8 9 11 14 15 16 0 1 3 4 5 6 7 8 9 11 14 15 16 0 1 2 3 4 5 6 7 8 11 13 14 15 0 1 2 3 4 5 6 7 8 11 13 14 15 0 1 2 3 4 5 6 7 8 11 13 14 15 16 0 1 3 4 5 6 7 8 9 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16qui en relation avec l'autre fichier, par exemple au premier lieu j'accède à la 5ème ligne et je récupère le timestamp de 106. j'ai testé le code avec les 3 première lignes et il m'a donné ce résultat
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 106, 203, 207, 102 103 104 205,103, 102 103 104 205,104, 102 103 104 205,205 110, 102 103 104 205,205 107, 102 103 104 205 206, 102 103 104 205,201 202 205 206, 102 205 110, 102 205 107, 201 202 205,205,202, 201 202 205,205,103, 201 202 205,205,104, 201 202 205,205,206, 201 202 205,205,201, 201 202 205,201 202 103, 201 202 205,201 202 104, 201 202 205,205 110, 201 202 205,205 107, 205 206 208 209,201, 205 206 208 209,205 110, 205 206 208 209,205 206, 205 206 208 209,205 107, 201 202 205,204 205 206, 205,204 205 110, 205,204 205 107, 206 208 209,204 205 110, 206 208 209,204 205 206, 206 208 209,204 205 107, 201 202 205,205 108, 201 202 205,205 109, 204 205 108, 205,201 202 205 110, 205,201 202 205 107, 204 205,201 202 205 206, 205,201 202 205,202, 205,201 202 205,206, 205,201 202 205,201, 205,205,201 202 103, 205,205,201 202 104, 205,205,205 110, 205,205,205 107, 205,205,108, 205,205,109, 206 208 209,201 202 205 206, 210, 102, 205,201 202 103, 205,201 202 104, 105 206, 204 205 110, 204 205 206, 204 205 107, 205,205,201 202 205 206, 205,205 108, 205,205 109, 201 202 205 206 208 209 110, 201 202 205 108, 201 202 205 109, 206 208 209,201, 206 208 209,205 110, 206 208 209,205 206, 206 208 209,205 107, 201 202 205,201 202 205 206, 204, 201 202 205 206 107, 201 202 205 206 208 209, 205,205,202, 205,205,103, 205,205,104, 205,205,206, 205,205,201, 205,205 110, 205,205 107, 205,201 202 205 206, 205 108, 205 109, 206 208 209 110, 201 202 205 110, 206 107, 206 208 209, 201 202 103, 201 202 104, 201 202 205 107, 205 110, 208, 209, 108, 109, 201 202 205 206, 205 107, 205, 110, 103, 104, 107, 201, 202, 206,c'est juste mais il y a des affichages supplémentaire que j'en ai pas besoin, par exemple 203 (le 2ème motif), je veux récupérer ses timestamp dans les lignes 1 7 11 13 14 16 mais avec ce code il m'a aussi donné ses timestamp dans les lignes 0 1 4 7 8 11 15 qui ont les lignes de 207(le motif numéro 3), comment je dois corriger mon code pour qu'il accède seulement aux lignes de motif considéré et pas à la totalité des lignes??
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 timestamp de 106 est[ 1217166360, 1217183040] timestamp de 203 est[ 1216473720] timestamp de 207 est[ 1216489440, 1216489500, 1216496100, 1216497420]] timestamp de 203 est[ 1217305140, 1217312580]] timestamp de 207 est[ 1217312580]] timestamp de 203 est[ 1217366040, 1217413740]] timestamp de 207 est[ 1217394480] timestamp de 203 est[ 1217511360] timestamp de 203 est[ 1217562720]] timestamp de 203 est[ 1217814540, 1217867040, 1217874720] timestamp de 207 est[ 1217876280]] timestamp de 207 est[ 1216466220]] timestamp de 203 est[ 1216473720] timestamp de 207 est[ 1216489440, 1216489500, 1216496100, 1216497420]] timestamp de 207 est[ 1216728000] timestamp de 203 est[ 1217305140, 1217312580]] timestamp de 207 est[ 1217312580]] timestamp de 207 est[ 1217338860, 1217339340]] timestamp de 203 est[ 1217366040, 1217413740]] timestamp de 207 est[ 1217394480] timestamp de 207 est[ 1217641140, 1217796720, 1217803140]]
Partager