[VB.NET 2005]Probleme de gestion d'exception "IndexOutOfRangeException"
Salut
Je débute en VB, j'ai ecrit une fonction en C que je voudrai transformer en VB mais je rencontre un petit Pb. En effet j'utilise un while qui fait des tests sur un tableau et il se trouve que parfois l'indice du tableau peut etre soit négatif soit superieur à l'indice maximun du tableau. En C ça ne pose pas de PB il n'entre tout simplement pas dans la boucle while mais en VB il me parle de IndexOutOfRangeException exception non traitée. Voila mon code :
Code:
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
|
PrivateSub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim x AsString
Dim i AsInteger
Dim res AsInteger
Dim m AsInteger
x = Me.TextBox1.Text
m = x.Length
ReDim tab(m - 1)
tab(0) = -1
i = -1
For j AsInteger = 0 To m - 1
If ((i > 0) And ((i + 1) < m)) Then
While (x.Chars(i + 1) <> x.Chars(i))
i = tab(i)
EndWhile
EndIf
i = i + 1
tab(j) = i
Next j
For j AsInteger = 0 To m - 1
res = res * 10 + tab(j)
Next j
MsgBox(res)
EndSub
|
tab est un tableau d'entier global.
J'ai remplacé le code que j'utilisé au depart (ci-dessous) par le code si dessus(If ((i > 0) And ((i + 1) < m)) Then While (x.Chars(i + 1) <> x.Chars(i))
Code:
1 2
|
while((i>0) And (x.Chars(i + 1) <> x.Chars(i)) |
mais j'ai toujours une erreur IndexOutOfRangeException mais je ne sais pas la traiter et je ne trouve rien de très explicite sur le net
merci d'avance