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 :
tab est un tableau d'entier global.
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 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
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))
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 while((i>0) And (x.Chars(i + 1) <> x.Chars(i))
merci d'avance
Partager