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 !
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)
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.
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.