Bonjour,
Mon objectif est de lire un .csv (un tableau excel en gros) de rentrer chaque colonne dans une liste , faire du traitement sur les valeurs de la liste(moyenne glissante etc ..) puis de réécrire un .csv avec les nouvelles valeurs c'est à dire celles qui ont été traité. Pour cela j'utilise la bibliothèque csvhelper car elle est plutôt simple à utiliser.
J'ai réussi à faire la lecture du .csv et de rentrer chaque colonne dans des listes, faire le traitement mais je bloque sur la partie réécriture du .csv
En effet la réécriture demande en entrée un Ienumerate et je ne sais pas trop comment le créer à partir des différentes listes.
Si quelqu'un peut me donner une petite idée.
Voici le code pour le moment
La classe qui hierarchise le .csv correspond au nom des différentes colonnes
Code permettant de lire le .csv et de rentrer les colonnes dans des variables
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 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace test2 { class dataactuelle { public int Index { get; set; } public int Time { get; set; } public double Pos_X { get; set; } public double Pos_Y { get; set; } public double Pos_Z { get; set; } public double Pos_A { get; set; } public double Pos_B { get; set; } public double Pos_C { get; set; } public double Out_1 { get; set; } public double Out_2 { get; set; } public double Out_3 { get; set; } public double Out_4 { get; set; } public double Out_5 { get; set; } public double Out_6 { get; set; } public double Out_7 { get; set; } public double Out_8 { get; set; } } }
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 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using CsvHelper; namespace test2 { class Program { static void Main(string[] args) { var csv = new CsvReader(new StreamReader("nom.csv")); csv.Configuration.Delimiter = ";"; var datapro = csv.GetRecords<dataactuelle>().ToList(); List<int> Index = new List<int>(); List<int> Time = new List<int>(); List<double> Pos_X = new List<double>(); List<double> Pos_Y = new List<double>(); List<double> Pos_Z = new List<double>(); List<double> Pos_A = new List<double>(); List<double> Pos_B = new List<double>(); List<double> Pos_C = new List<double>(); List<double> Out_1 = new List<double>(); List<double> Out_2 = new List<double>(); List<double> Out_3 = new List<double>(); List<double> Out_4 = new List<double>(); List<double> Out_5 = new List<double>(); List<double> Out_6 = new List<double>(); List<double> Out_7 = new List<double>(); List<double> Out_8 = new List<double>(); foreach (var element in datapro) { Index.Add(element.Index); Time.Add(element.Time); Pos_X.Add(element.Pos_X); Pos_Y.Add(element.Pos_Y); Pos_Z.Add(element.Pos_Z); Pos_A.Add(element.Pos_A); Pos_B.Add(element.Pos_B); Pos_C.Add(element.Pos_C); Out_1.Add(element.Out_1); Out_2.Add(element.Out_2); Out_3.Add(element.Out_3); Out_4.Add(element.Out_4); Out_5.Add(element.Out_5); Out_6.Add(element.Out_6); Out_7.Add(element.Out_7); Out_8.Add(element.Out_8); } // traitement //on reccupère les valeurs dans une liste List<double> Pos_X_traitee = new List<double>(); } } }
Code pour l'écriture dans un autre .csv
Fonctionne juste apres une lecture d'un .csv inital
Voila j’espère que c'est assez clair
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var csv = new CsvReader(new StreamReader("nom.csv")); csv.Configuration.Delimiter = ";"; var datapro = csv.GetRecords<dataactuelle>().ToList(); var csv3 = new CsvWriter(new StreamWriter("Writer.csv")); csv3.Configuration.Delimiter = ";"; csv3.WriteRecords(datapro);
Bonne journée![]()
Partager