J'ai développé un bout de code permettant de découper les valeurs d'une cellule en excel en mettant une valeur par ligne et j'ai eu l'erreur suivante:
"L'index était hors limite. il ne doit pas être négatif et doit être inférieur à la taille de la nom du paramètre: index"
L'erreur concerne cette variable: command_addressLst et pourtant j'ai bien vérifié la taille de command_address et de response_address avec word_count
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 private DataTable trasnformDT(DataTable dt1) { DataTable dt = dt1.Clone(); int i = 0; foreach (DataRow row in dt1.Rows) { List<string> Word_countLst = row["Word_count"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',').ToList(); List<string> command_addressLst = row["command_address"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',').ToList(); List<string> response_addressLst = row["response_address"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(',').ToList(); string[] Register_numberLst = row["Register_number"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(','); string[] Register_valueLst = row["Register_value"].ToString().Trim().TrimStart('[').TrimEnd(']').Split(','); if (row["Word_count"].ToString().Trim() == "[]") { if (command_addressLst.Count() == response_addressLst.Count()) { int j = 0; foreach (string item in command_addressLst) { // long cacount = Int64.Parse(item); DataRow dr = dt.NewRow(); dr.ItemArray = row.ItemArray; dr["command_address"] = command_addressLst[j]; dr["response_address"] = response_addressLst[j]; dt.Rows.Add(dr); j++; } } } else { foreach (string item in Word_countLst) { long wcount = Int64.Parse(item); for (int j = 0; j < wcount; j++) { DataRow dr = dt.NewRow(); dr.ItemArray = row.ItemArray; dr["Word_count"] = item; dr["Register_number"] = Register_numberLst[j]; dr["Register_value"] = Register_valueLst[j]; dr["command_address"] = command_addressLst[j]; dr["response_address"] = response_addressLst[j]; dt.Rows.Add(dr); } } } i++;
Merci de votre aide
Partager