Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FONCTION SPLIT (DISSOCIER) POUR LES UTILISATEURS DE VB5


Information sur la source

Catégorie :Texte Classé sous : split, vb5 Niveau : Débutant Date de création : 15/05/2005 Date de mise à jour : 15/05/2005 17:14:58 Vu : 6 703

Note :
9,33 / 10 - par 3 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

Description

Ce code permet aux utilisateurs de VB5 d'employer la fonction Split (Dissocier), qui n'est apparue en Visual Basic qu'à partir de la version 6.
 

Source

  • Function Dissocier(Chaîne As String, Optional Balise As String = _
  • " ") As Variant
  • Dim Éléments() As String, LongChaîne As Long, PrécBalise As Long
  • K = -1
  • 'Cas où aucune balise n'est spécifiée : le tableau n'a qu'une
  • 'entrée qui contient toute la chaîne
  • If Len(Balise) = 0 Then
  • ReDim Éléments(0)
  • Éléments(0) = Chaîne
  • GoTo Fin
  • End If
  • Do
  • K = K + 1
  • LongChaîne = Len(Chaîne)
  • 'Recherche le dernier caractère avant la balise
  • PrécBalise = InStr(1, Chaîne, Balise, vbBinaryCompare) - 1
  • 'Quand il n'y a plus d'occurrence de la balise, récupère
  • 'la fin de la chaîne
  • If PrécBalise = -1 Then PrécBalise = LongChaîne
  • 'Insère les données dans une entrée du tableau
  • ReDim Preserve Éléments(K)
  • Éléments(K) = Mid(Chaîne, 1, PrécBalise)
  • If PrécBalise = LongChaîne Then Exit Do
  • 'Réduit la chaîne
  • Chaîne = Right(Chaîne, LongChaîne - PrécBalise - Len(Balise))
  • Loop
  • Fin:
  • Dissocier = Éléments()
  • End Function
Function Dissocier(Chaîne As String, Optional Balise As String = _
" ") As Variant
    Dim Éléments() As String, LongChaîne As Long, PrécBalise As Long
    K = -1
    'Cas où aucune balise n'est spécifiée : le tableau n'a qu'une
    'entrée qui contient toute la chaîne 
    If Len(Balise) = 0 Then
        ReDim Éléments(0)
        Éléments(0) = Chaîne
        GoTo Fin
    End If
    Do
        K = K + 1
        LongChaîne = Len(Chaîne)
        'Recherche le dernier caractère avant la balise
        PrécBalise = InStr(1, Chaîne, Balise, vbBinaryCompare) - 1
        'Quand il n'y a plus d'occurrence de la balise, récupère 
        'la fin de la chaîne
        If PrécBalise = -1 Then PrécBalise = LongChaîne
        'Insère les données dans une entrée du tableau
        ReDim Preserve Éléments(K)
        Éléments(K) = Mid(Chaîne, 1, PrécBalise)
        If PrécBalise = LongChaîne Then Exit Do
        'Réduit la chaîne
        Chaîne = Right(Chaîne, LongChaîne - PrécBalise - Len(Balise))
    Loop
Fin:
    Dissocier = Éléments()
End Function

Conclusion

Bonne programmation  à tous.
 

Historique

15 mai 2005 17:14:58 :
Alignement des commentaires

Commentaires et avis

signaler à un administrateur
Commentaire de yoman64 le 19/05/2005 22:10:42

Pourquoi pas faire un while  PrécBalise <> LongChaîne
                      ...
                      wend

a la place de mettre un If PrécBalise = LongChaîne Then Exit Do  dans la boucle , je sais pas si sa sauve qqc mais sa parait plus propre :)

En tk tres utile pour les utilisateurs de vb5 meme si il doit pu en avoir bcp
;-)


Que la prog soit avec toi :)

signaler à un administrateur
Commentaire de Cacophrene le 20/05/2005 20:07:00

Salut Yoman64 !

Bonne idée pour le while. Puis, pour les utilisateurs de VB5, j'en suis un :)

Cordialement,
Cacophrène

signaler à un administrateur
Commentaire de us_30 le 22/05/2005 11:20:51

Salut,

C'est surement trés bien, mais... comme j'utilise VBA 97, cette fonction n'existe évidemment pas, alors une petite explication sur à quoi elle sert, ben... cela m'aiderais...

Merçi,
Us.

signaler à un administrateur
Commentaire de Cacophrene le 22/05/2005 12:58:07

Salut us_30 !

Voici donc une petite explication : si tu as une chaîne, disons "Ceci6f6e1r3sest6f6e1r3sune6f6e1r3schaîne", tu remarques que la séquence "6f6e1r3s" revient tout le temps. La fonction Split (Dissocier) permet de créer un tableau contenant les chaînes "Ceci", "est", "une" et "chaîne", lesquelles ont été "découpées" dans la chaîne initiale en prenant pour limite la séquence "6f6e1r3s". Cette fonction me sert, par exemple, à couper un message électronique en plusieurs parties (lorsqu'on reçoit un message d'un serveur POP (dialogues avec winsock par exemple), celui-ci est au format MIME : s'il contient, par exemple, un texte et une image jointe, le texte sera séparé de l'image par une balise appelée boundary. En coupant le message selon cette balise, je récupère le texte d'un côté, l'image de l'autre (je ne m'étends pas sur les détails, ce que j'ai dit est schématique)).

Cordialement,
Cacophrène

signaler à un administrateur
Commentaire de ratala le 19/11/2005 15:04:21

Genial le split merci pour l'info, je me suis construit moi aussi une fonction qui fait un split mais sans m'en rendre compte !
ps : moi aussi j'utilise vb5.

signaler à un administrateur
Commentaire de Galactus13 le 04/11/2008 22:19:03

Que dire moi aussi je suis un utilisateur de vb5 car j'ai pas les moyen de passer au dessus ! NA !
et merci de pensez a nous !voila un tluc qui peut servir !

signaler à un administrateur
Commentaire de Cacophrene le 05/11/2008 07:01:27

Bonjour !

Ce code a plus de trois ans maintenant... et ce qui était vrai à ce moment-là est maintenant faux : utiliser encore Visual Basic 5.0 n'est pas une bonne idée ! C'est une technologie abandonnée et il faut passer à autre chose. Mais attention, pas forcément .NET. Il y a plein d'autres langages qui valent le détour.

Cordialement,
Cacophrène

signaler à un administrateur
Commentaire de us_30 le 05/11/2008 16:49:24

Bonjour à tous,

Si je peux me permettre de rajouter... En effet, il y a plein d'autres langages possibles... VB.NET, perso j'y prend goût peu à peu...
Galactus13 , si tu n'as de moyen, tu n'as pas d'excuse ! car... tu peux avoir Visual Studio 2008 Express gratuit !
Voici l'adresse : http://msdn.microsoft.com/fr-fr/express/aa975050.aspx

Bon, la seule chose, c'est qu'il faut mieux être en haut débit...

Amicalement,
Us.

signaler à un administrateur
Commentaire de Galactus13 le 05/11/2008 17:06:39

Merci pour le lien, mais et la licence ? est ce que la mienne est prise en compte ?

signaler à un administrateur
Commentaire de us_30 le 05/11/2008 18:13:01

La licence est gratuite, il suffit d'accepter et de s'enregistrer...

Amicalement,
Us.

signaler à un administrateur
Commentaire de us_30 le 05/11/2008 18:15:10

... euh, tout est expliquer sur la page précédente... Lire Etape 3 !

Amicalement,
Us.

signaler à un administrateur
Commentaire de Galactus13 le 05/11/2008 18:16:48

Merci pour cette merveilleuse réponse mais ! voilà!
Je suis comme les vieux (en fait je suis un vieux )!
Windows XP sp1 n'est pas accepté! Encore un CD a acheté mille tonnerre de brest ! pas grave j'attendrais queques jours ...

signaler à un administrateur
Commentaire de us_30 le 05/11/2008 18:35:27

Ah ba là ! mon vieux... c'est sur... pourtant normalement Win XP Sp1 ne devrait pas poser de pb... mais bon...
As-tu lis la page : http://download.microsoft.com/download/E/F/7/EF70AE8C-FF6E-46D4-A007-F4ECE1D4D95D/VS2008ExpressReadme.htm
Sinon faire une mise à jour de Windows au près de Microsoft...

Bon courage,
Amicalement,
Us.

PS : Désolé Cacophrène de prendre qlq posts sur ta source, pour cet écart... En espérant de revoir (toujours avec plaisir) ailleurs sur VBF...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

pas de split avec VB5 ? [ par atoguum4ever ] Bonjour &#224; tousj'utilise VB 5 et je n'arrive pas &#224; me servir de la fonction splitest-ce qu'elle existe sour VB 5 ??voil&#224; mon code : Dim Split sans Split [ par elolydie ] Bonjour,Je cherche &agrave; renvoyer un tableau de string &agrave; partir d'une cha&#238;ne de caract&egrave;res qui contient des s&#233;parateurs.H&# Petite question sur Mscomm32 [ par lordko ] Bonjour,Je pensais pouvoir &#233;viter de faire patienter mon application quand je lancais une commande AT et que j'attendais la r&#233;ponse compl&#2 Retourner chaîne de caractére split [ par talking ] Voil&#224; j'ai une variable du style :test = "Str1|Sti1|Sto1|Sta1,Str2|Sti2|Sto2|Sta1,etc"et moi je voudrais retourner un par un:Str1Sti1STo1etcmoi c problème pour utiliser vb5 [ par DjenT ] Bonjour, je viens de commencer le vbscript mais je ne trouve pas d'application vb( je fait juste avec le bloc note )pourriez vous me dire ouen trouver Split de VB 6 [ par joro ] Quel est l'&#233;quivalent, en "VB 5",&nbsp;de l'instruction&nbsp;"Split" employ&#233;e en&nbsp;VB 6.Joro Récupérer code VB3 avec VB5 [ par grenault72 ] Bonjour,Voil&#224; j'ai un probl&#232;me : je n'arrive pas &#224; r&#233;cup&#233;rer un vieux projet &#233;crit en VB3 et auquel je tiens beaucoup av *VB5* *VB6* |Affichage d'un PDF au lieu d'un HLP| [ par JLB59 ] Bonjour &#224; tous,Est-ce que QQ1 connait le moyen de faire afficher une aide avec un fichier PDF ?Avant, j'avais un HLP, mais comme j'ai pu faire un *VB5* |Enreg. VB vers Excel| [ par JLB59 ] Bonjour &#224; tous,QQ1 pourrait m'aider SVP car je voudrais &#233;crire des enregistrements vers excel avec si possible un en-t&#234;te pour chaque c [VB5 ou VB.NET] Modifier des ressources [ par zippro4012 ] La question est simple : comment lire et modifier les resources d'un executables existant en VB5 ou VB.NET ?&nbsp;


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,733 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.