Split

Soyez le premier à donner votre avis sur cette source.

Vue 4 731 fois - Téléchargée 262 fois

Description

Voici une fonction equivalente a la fonction SPLIT de VB6 ...
Je penses que de part sa simplicité d'utilisation et sa fiabilité, elle va se rendre tres utile pour les utilisateurs de VB6 et VB4 qui galere souvent pour decouper des chaines de characteres selon un delimiteur bien definit...

Source / Exemple :


Private Sub Command1_Click()
Dim MyTab1() As String
'Stockage des deux entrées de texte dans des variables de type string
mt = Text1.Text
sp = Text2.Text

'Verifie que tous les champs soit correctement renseigné
If Len(Text2.Text) = 0 Or Len(Text1.Text) = 0 Then Exit Sub

'Appel la fonction qui va permettre de separrer la chaine de charactere selon un separateur definit
MyTab1 = SplitBis(Text1.Text, Text2.Text)

'Ce bout de code est facultatif... Il permet juste de visualiser le resultat
For i = 0 To UBound(MyTab1)
resul = resul + MyTab1(i) & vbNewLine
Next i

Text3.Text = resul

End Sub

Private Function SplitBis(Chaine As String, Separateur) As Variant
'Definition des variables utlisé pour rendre le code plus rapide
Dim frase As String
Dim mem As Integer
Dim mot As String
Dim MyTab() As String
Dim temp As String

On Error Resume Next
n = 0

'Verifie qu'il exite bien des element
If Trim(Text1.Text) <> "" Then
temp = Chaine & Separateur
Else: MsgBox "La Chaine ne peut pas etre traité": Exit Function
End If

'Boucle permattant de compter le nombre d'occurence dans la chaine de charactere
For i = 0 To Len(temp)
If InStr(1, temp, Separateur) = "0" Then GoTo fin
temp = Mid$(temp, InStr(1, temp, Separateur) + 1)
n = n + 1
fin:
Next i

frase = LTrim(Chaine) & Separateur
m = 0

'Boucle permattant de separer les elements selon les criteres choisi soit le separateur
For i = 0 To n - 1
mem = InStr(1, frase, Separateur)
mot = Mid$(frase, 1, mem - 1)
frase = Mid$(frase, mem + Len(Separateur))

mot = Trim(mot)
'Verifie que le mot n'est pas du vide  (vbnullstring)
If Len(mot) = 0 Then test = False Else test = True

If test = False Then GoTo f1
'Redimenssione le tableau pour ne pas utiliser inutillment des espaces du tableau
ReDim Preserve MyTab(0 To m)

'Stocke le mot dans le tableau
MyTab(m) = mot
mot = vbNullString
m = m + 1
f1:
Next i

'Retourne le resultat de la fonction
SplitBis = MyTab

End Function

Conclusion :


Maintenant a vous d'en juger :]
Il y surement des moyens d'optimiser le code ...
J'attends vos remarques :]

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

helleye
Messages postés
8
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
1 juillet 2003
-
pas mal ton truque
cs_mehdibou
Messages postés
365
Date d'inscription
vendredi 24 mai 2002
Statut
Membre
Dernière intervention
18 octobre 2004
-
Si, Instr() est dans VB4, puisqu'elle est dans VB 3 :-)
9/10 !
DeAtHCrAsH
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
La fonction Split est utilisé pour separer des chaines de characteres selon des criteres bien precis .. Ainsi , cela s'avere utile pour stocker le resultat que retourne la fonction dans un tableau...

A l'inverse, la fonction Instr te renvoi la position de la 1ere occurence choisi dans une chaine de charactere ...

Voili voilou .. J'espere que ceci t'aidera a comprendre un peu mieux la nuance qu'il y a entre ces deux fonctions ...

A++

DeAtH_-_CrAsH :]
cs_Nil
Messages postés
85
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
31 décembre 2002
-
Ahhhh!!!! Non ca va j'ai compris lol mais c'est pas plus facile avec InStr ? (je sais pas si c'est dans VB4)
cs_Nil
Messages postés
85
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
31 décembre 2002
-
Euh... sa sert à quoi le Split ? :-)

Non mais sérieusement je sais pas et comme c'est une des sources les plus populaires, j'aimerais savoir ;p

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.