Mon code est suspendu sur la ligne fi_get[1, 4]
avec une erreur «index hors limites».Tableau multidimensionnel hors limites
Le lines
var est un tableau de liste de chaînes et, à l'exécution, il contenait bien plus de 600 lignes de texte. Je ne sais pas pourquoi je ne peux pas attribuer une valeur de chaîne à [1,4]
? Il attribue des valeurs à [1,0]
et [1,1]
et [1,2]
et [1,3]
.
string[,] fi_get = new string[2, 11];
if (lines[i].Contains("show fabric-interconnect firmware"))
{
fi_get[0, 0] = Regex.Replace(lines[i + 2], @".+Running-Kern-Vers:\s(.+)", "$1");
fi_get[0, 1] = Regex.Replace(lines[i + 3], @".+Running-Sys-Vers:\s(.+)", "$1");
fi_get[0, 2] = Regex.Replace(lines[i + 4], @".+Startup-Kern-Vers:\s(.+)", "$1");
fi_get[0, 3] = Regex.Replace(lines[i + 5], @".+Startup-Sys-Vers:\s(.+)", "$1");
fi_get[1, 0] = Regex.Replace(lines[i + 7], @".+Running-Kern-Vers:\s(.+)", "$1");
fi_get[1, 1] = Regex.Replace(lines[i + 8], @".+Running-Sys-Vers:\s(.+)", "$1");
fi_get[1, 2] = Regex.Replace(lines[i + 9], @".+Startup-Kern-Vers:\s(.+)", "$1");
fi_get[1, 3] = Regex.Replace(lines[i + 10], @".+Startup-Sys-Vers:\s(.+)", "$1");
}
if (lines[i].Contains("show fabric-interconnect inventory expand detail"))
{
fi_get[0, 4] = Regex.Replace(lines[i + 2], @".+Product Name:\s(.+)", "$1");
fi_get[0, 5] = Regex.Replace(lines[i + 3], @".+PID:\s(.+)", "$1");
fi_get[0, 6] = Regex.Replace(lines[i + 4], @".+Serial (SN):\s(.+)", "$1");
fi_get[0, 7] = Regex.Replace(lines[i + 7], @".+Description:\s(.+)", "$1");
fi_get[0, 8] = Regex.Replace(lines[i + 10], @".+Serial (SN):\s(.+)", "$1");
fi_get[0, 9] = Regex.Replace(lines[i + 13], @".+Product Name:\s(.+)", "$1");
fi_get[0, 10] = Regex.Replace(lines[i + 14], @".+PID:\s(.+)", "$1");
fi_get[0, 11] = Regex.Replace(lines[i + 15], @".+Serial (SN):\s(.+)", "$1");
fi_get[1, 4] = Regex.Replace(lines[i + 29], @".+Product Name:\s(.+)", "$1");
fi_get[1, 5] = Regex.Replace(lines[i + 30], @".+PID:\s(.+)", "$1");
fi_get[1, 6] = Regex.Replace(lines[i + 31], @".+Serial (SN):\s(.+)", "$1");
fi_get[1, 7] = Regex.Replace(lines[i + 34], @".+Description:\s(.+)", "$1");
fi_get[1, 8] = Regex.Replace(lines[i + 37], @".+Serial (SN):\s(.+)", "$1");
fi_get[1, 9] = Regex.Replace(lines[i + 40], @".+Product Name:\s(.+)", "$1");
fi_get[1, 10] = Regex.Replace(lines[i + 41], @".+PID:\s(.+)", "$1");
fi_get[1, 11] = Regex.Replace(lines[i + 42], @".+Serial (SN):\s(.+)", "$1");
}
Est-ce que ça souffle en réglant la valeur du tableau ou en lisant les lignes [i + 29]? –
Il y a deux tableaux là-dedans; Êtes-vous sûr que les lignes [i + 29] sont un élément valide? –