cs_neotof
Messages postés75Date d'inscriptionjeudi 12 août 2004StatutMembreDernière intervention 3 décembre 2012
-
16 déc. 2007 à 14:29
cs_neotof
Messages postés75Date d'inscriptionjeudi 12 août 2004StatutMembreDernière intervention 3 décembre 2012
-
16 déc. 2007 à 15:03
<hr style="color: rgb(209, 209, 225);" size="1" />
<!-- / icon and title -->
<!-- message -->
Bonjour ,
donc j ai une variable tableau avec plusieurs phrases et je voudrais decomposé toute ces phrases en mots donc voici mon code:
Dim str_mot As String
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim tab_chaine() As String
For i = 0 To UBound(tab_phrase)
k = 0
tab_phrase(i) = tab_phrase(i) + " "
MsgBox tab_phrase(i)
For j = 1 To Len(tab_phrase(i))
str_mot = str_mot + Mid(tab_phrase(i), j, 1)
If Mid(tab_phrase(i), j, 1) = " " Then
k = k + 1
ReDim Preserve tab_chaine(0 To i, 1 To k)
tab_chaine(i, k) = RTrim(str_mot)
MsgBox i
MsgBox k
str_mot = ""
End If
Next j
Next i
La 1 er phrase est decomposé mais quand il arrive à la deuxieme ça
plante : indice en dehors de la plage et me souligne cette ligne ReDim
Preserve tab_chaine(i, k) pourtant i vaut la deuxieme phrase et k vaut
1 pour le 1 er mot
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 16 déc. 2007 à 14:44
Salut.
Quand tu fais un redim preserve sur un tableau, il est impossible de toucher les paramètres à part le dernier.
si tu commences avec Tab(1 to x,1 to y, 1 to z, 1 to t), il faut garder les 1 to x, 1 to y, et 1 to z. Seul le 1 to t peut être changé (sinon ça va planter.)
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 16 déc. 2007 à 14:50
Ps: une solution serait donc de mettre 1 to i le nombre de phrases définitivement avec redim (sans le preserve) avant de lire le tableau, puis de faire un redim preserve sur le 1 to k seulement si le nombre de mots de la phrase que tu cherches est supérieur à ubound(tab_chaine,2)
Le problème c'est que si jamais après tu rajoute une phrase par exemple et que tu veux rajouter les mots de cette phrase dans ton tab_chaine, il faut que tu recommences à partir de zéro en refaisant un redim (sans preserve) en donnant le nombre de lignes exact de ton tableau, etc...