EQUIVALENT DU SPLIT VB6 POUR VB5

Signaler
Messages postés
97
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
1 décembre 2003
-
Messages postés
22
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
20 juillet 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/3420-equivalent-du-split-vb6-pour-vb5

Messages postés
22
Date d'inscription
jeudi 13 janvier 2011
Statut
Membre
Dernière intervention
20 juillet 2011

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 !
Messages postés
93
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
22 juillet 2006

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
Messages postés
93
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
22 juillet 2006

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.
Messages postés
97
Date d'inscription
vendredi 28 décembre 2001
Statut
Membre
Dernière intervention
1 décembre 2003

MERCI