Demande d'aide , visual basic

Fermé
vb8 - 23 déc. 2009 à 21:27
 Bernyly - 3 janv. 2010 à 19:29
Bonjour,
j'arrive pa à distinguer l'erreur ds cette fonction qui a pour but de décomposer une phrase en bloc de caractère et en bloc d'espace, le copilateur indique l'eereur suivante " Make sure that the maximum index on a list is less than the list size " au niveau de la ligne indiqué par une flèche :
aidez moi à découvrir l'erreur svp

Imports System.Console
Module Module1
Sub Main()
Dim msg As String = "ça marche ?"
Dim t(Len(msg)) As String
Console.WriteLine("mokréz")
Call Decomposer(msg, t)
Console.WriteLine("mokréz")
For i = 0 To t.Length - 1

Console.WriteLine(t(i))
Next
Console.WriteLine()
Console.ReadKey()
End Sub
Sub Decomposer(ByVal strMsg As String, ByRef TB() As String)
Dim i, j As Integer
j = 0
i = 0
Do
If (strMsg(i) <> " ") Then
While (strMsg(i) <> " ") And (i < strMsg.Length) <=== erreur
TB(j) &= TB(i)
i = i + 1
End While
End If
If (strMsg(i) = " ") Then
While (strMsg(i) = " ") And (i < strMsg.Length)
TB(j) &= TB(i)
i = i + 1

End While
End If
j = j + 1
Loop Until (i = strMsg.Length)
End Sub
End Module
A voir également:

4 réponses

Bonsoir,

je vais peut être dire une bêtise mais tu as défini strmsg comme une variable.
sauf que tu n'as jamais indiqué à quoi était égal Mstrmsg.
donc pour lui strmsg = ""
d'ou la longueur de strmsg est indéfinissable.
0
mais strMsg dans la fonction Decompser est passé en paramètre comme msg dont la valeur est "ça marche?" !!
0
holow1 Messages postés 680 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 7 décembre 2012 71
23 déc. 2009 à 22:46
bonjour ,

l'error se trouve o niveau de l'incrementation de la varaible 'i'

la taille de la chaine "msg" est : 11

mais que je fais Console.WriteLine(msg(11)) il m'affiche une error c'est logique car les indec commance par 0

pour miuex comprender ta cahine :


dim msg as string="ça marche ?"
pour afficher le dernier caractère (?) je vais faire
Console.WriteLine(msg(10)) pas Console.WriteLine(msg(11)) ok
0
Prenons la phrase à décomposer "Salut les copains" qu'on attribue à une variable texte MaPhrase. Si on veut faire des blocs indépendants avec les 3 mots "Salut", "les" et copains, on leur attribue une variable texte également comme Mot1, Mot2 et Mot3 donc déclarer :

Dim MaPhrase, Mot1, Mot2, Mot3 as string
Utiliser le code Mid (variable texte principale, position de la première lettre du bloc texte à extraire, longueur en nombre de caractères du bloc texte à extraire)
On aura donc
Mot1 = Mid(MaPhrase,1,5) (ce qui donne : Salut)
Mot2 = Mid(MaPhrase,7,3) (ce qui donne : les)
Mot3 = Mid(MaPhrase,11,7) (ce qui donne : copains)

Pour reconstruire MaPhrase (la variable peut s'appeler à partir de là différemment)

MaPhrase = Mot1 & " " & Mot2 & " " & Mot3 ce qui donne : Salut les copains

J'espère que c'est la réponse attendue !
0