Separation d'une chaine de caractere

Soyez le premier à donner votre avis sur cette source.

Vue 5 967 fois - Téléchargée 333 fois

Description

Fonction qui separe une chaine de caractere en deux autres par rapport à un séparateur de taille quelconque
il y a déja beaucoup de source dans le meme genre sur ce site mais celle que j'ai voulu utilisé au début bouclais à l'infini si elle ne trouvait pas le séparateur

Source / Exemple :


' *****************************************************
' *                                                   *
' *** Fonction Néocracker : neocracker@caramail.com ***
' *                                                   *
' *****************************************************

' Vous pouvez utilisez cette fonction dans vos programmes,
' mais dans le cas ou ce programme se retrouve sur VBFrance.com
' prévenez moi j'irais le voir

' Je m'excuse pour les multiples fautes d'orthographes qui
' doivent se trouvé dans cette source

' =========================================================

' Le séparateur n'a pas de taille défini
' Le séparateur ne doit se trouver qu'une seul fois dans le texte, sinon :
' EXEMPLE : texte : "x+5 = 25 = 5y" / séparateur : " = "
'           gauche : "x+5"
'           droite : "25 = 5y"

Function separe(chaine As String, separateur As String, Optional partie_droite As Boolean) As String
    For i = Len(separateur) To Len(chaine)
        If Right(Left(chaine, i), Len(separateur)) = separateur Then
            If partie_droite = False Then
                separe = Left(chaine, i - Len(separateur))
            Else
                separe = Right(chaine, Len(chaine) - i)
            End If
        End If
    Next i
End Function

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
35
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
20 février 2009

Slt,

De retour après de longues années d'absence, je me marre comme un *** devant mon code. Heureusement que les commentateurs étaient gentils ...

VDB Tristan
Messages postés
7
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
28 mars 2006

celle ci te décompose la trame séparée par des ; dans un tableau

Public Function DecodeF(strInput As String) As String()
' Decode la ligne de donnée séparée par des points virgule en tableau
Dim strDum(100) As String

Dim strDummy As String
Dim i, j As Integer
Dim iLgChaine As Integer
iLgChaine = Len(strInput)
i = 1
For j = 1 To iLgChaine
If Mid(strInput, j, 1) = ";" Then
strDum(i) = strDummy
strDummy = ""
i = i + 1
Else
strDummy = strDummy & Mid(strInput, j, 1)
End If
Next j
strDum(i) = strDummy
' Retour de la fonction
DecodeF = strDum
End Function
Messages postés
35
Date d'inscription
vendredi 7 février 2003
Statut
Membre
Dernière intervention
20 février 2009

je cherchai la fonction split mais ne la trouvait pas donc j'ai créé celle ci
Messages postés
921
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
23 septembre 2010

C'est vrai que ce n'est pas optimisé, mais avec un peu de bidouillage et de récursivité il serait possible d'en faire un substitut à la fonction Split.
Mais bon c'est vrai que dans les cas comme ça il vaut mieux utiliser Split.
Messages postés
98
Date d'inscription
mercredi 22 novembre 2000
Statut
Membre
Dernière intervention
12 juillet 2005

moué ms bon la fonction split ;)...

si tu veux garder cette méthode, mets $ a left$ et right$, declare i, ne recalcule pas les longueurs a chk itérations, utilise not plutot ke =false pour optimiser un peu.

@+ bonne prog

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.