78zerocool
Messages postés22Date d'inscriptionjeudi 13 janvier 2011StatutMembreDernière intervention20 juillet 2011 17 déc. 2011 à 13:47
commen tu veu spliter des element d un tableau qui doivent te retourner Index out of bount ? normal tu n indique aucune valeur de depart a ton string de tableau du coup il ne peut determiner une valeur de debut !
DragonDo
Messages postés93Date d'inscriptionlundi 8 avril 2002StatutMembreDernière intervention22 juillet 2006 24 mai 2002 à 09:53
Encore moi. Je précise que mon code ne vérifie pas si les chaînes envoyées à la fonction sont pleines ou vides. A chacun d'y remédier ! (faut bien se casser la tête de temps en temps)
Bon prog
DragonDo
Messages postés93Date d'inscriptionlundi 8 avril 2002StatutMembreDernière intervention22 juillet 2006 24 mai 2002 à 09:43
Euh ! Désolé mais le code ne fonctionne pas chez moi en VB5 ! VB répond : "Impossible d'affecter au tableau" et surligne Tabsplit dans "TabSplit = Slipt(Text1.Text, Text2.Text)".
Ci-après ma solution qui vaut ce qu'elle vaut (j'utilise les mêmes contrôles que fredlynx) :
'-----// Début du code
Private Sub Command2_Click()
'----- Déclaration des variables locales
Dim Tb() As String
Dim Ind As Long
'----- Ma fonction split
Splt Text1, Text2, Tb()
'----- Reprise du code de fredlynx pour afficher le résultat
For Ind = 1 To UBound(Tb)
Text3.Text = Text3.Text & Tb(Ind) & vbCrLf
Next Ind
End Sub
Public Sub Splt(TMsg As String, TCar As String, Tbl() As String)
'----- Déclaration des variables locales
Dim Ind As Long
ReDim Tbl(0)
'----- Boucle de calcul
Ind = InStr(TMsg, TCar)
Do While Ind <> 0
ReDim Preserve Tbl(UBound(Tbl) + 1)
Tbl(UBound(Tbl)) = Left$(TMsg, Ind - 1)
TMsg = Mid$(TMsg, Ind + 1)
Ind = InStr(TMsg, TCar)
Loop
ReDim Preserve Tbl(UBound(Tbl) + 1)
Tbl(UBound(Tbl)) = TMsg
End Sub
'-----// Fin du code
Dans tous les cas grand merci à fredlynx pour son code.
cs_SHIVA
Messages postés97Date d'inscriptionvendredi 28 décembre 2001StatutMembreDernière intervention 1 décembre 2003 23 mai 2002 à 23:42
17 déc. 2011 à 13:47
24 mai 2002 à 09:53
Bon prog
24 mai 2002 à 09:43
Ci-après ma solution qui vaut ce qu'elle vaut (j'utilise les mêmes contrôles que fredlynx) :
'-----// Début du code
Private Sub Command2_Click()
'----- Déclaration des variables locales
Dim Tb() As String
Dim Ind As Long
'----- Ma fonction split
Splt Text1, Text2, Tb()
'----- Reprise du code de fredlynx pour afficher le résultat
For Ind = 1 To UBound(Tb)
Text3.Text = Text3.Text & Tb(Ind) & vbCrLf
Next Ind
End Sub
Public Sub Splt(TMsg As String, TCar As String, Tbl() As String)
'----- Déclaration des variables locales
Dim Ind As Long
ReDim Tbl(0)
'----- Boucle de calcul
Ind = InStr(TMsg, TCar)
Do While Ind <> 0
ReDim Preserve Tbl(UBound(Tbl) + 1)
Tbl(UBound(Tbl)) = Left$(TMsg, Ind - 1)
TMsg = Mid$(TMsg, Ind + 1)
Ind = InStr(TMsg, TCar)
Loop
ReDim Preserve Tbl(UBound(Tbl) + 1)
Tbl(UBound(Tbl)) = TMsg
End Sub
'-----// Fin du code
Dans tous les cas grand merci à fredlynx pour son code.
23 mai 2002 à 23:42
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.