RÉCUPÉRER LE XÈME ÉLÉMENT DANS UNE CHAÎNE (FONCTION)
Rachoo
Messages postés36Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention 9 avril 2002
-
6 mars 2002 à 17:37
alcania
Messages postés19Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention19 mars 2009
-
31 déc. 2005 à 11:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
alcania
Messages postés19Date d'inscriptionsamedi 3 mai 2003StatutMembreDernière intervention19 mars 2009 31 déc. 2005 à 11:02
10/10 car grace au dernier commentaire de Jack (auteur de la source qui m'était utile :p) j'ai exactement ce que je recherchai :p
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 20 avril 2004 à 18:44
Salut Draconagi
-1- Si tu ne sais pas comment repérer tes chiffres dans la chaine, comment veux-tu qu'un programme y arrive ? Il n'y a même pas d'espace devant et derrière ?
Essaye la solution donnée ci-après et énumère chaque donnée du Tablo pour reconnaître un chiffre parmi les donneés.
-2- En effet, cette fonction ne retourne que le Xième élément. Donc s'il se déplace, il te faudra chercher partout.
Sinon, pour info, cette fonction avait été faite sous VB5 qui ne disposait pas encore de l'instruction Split de VB6.
Ce Split est beaucoup plus pratique :
Dim Tablo() As String
Tablo = Split(MaChaine, MonSéparateur)
En sortie, tu auras toutes les valeurs dans chacune des données qui composent ce Tablo.
Ca commence à Tablo(0) et fini à Tablo(UBound(Tablo))
Pour le cas -2-, il te suffira de faire une boucle pour repérer ton chiffre.
... et pas la peine de faire un courrier en plus de ce commentaire (perso, ça m'énerve et de toute façon, j'y répondrai)
cs_Draconagi
Messages postés34Date d'inscriptionvendredi 9 avril 2004StatutMembreDernière intervention 9 octobre 20061 20 avril 2004 à 15:28
Ton code est super. Mais dis moi je cherche à peu près la même chose sauf que je cherche à extraire un chiffre dans un string mais il n y a pas de séparateur.
Et en deuxiéme cas, il y a des séparateurs mais la valeur à extraire n'est pas toujours au même endroit. Dans ton prog : No a une valeur fixe.
Si tu pouvais me dire.
Sinon bravo!!!
Gandalf5798
Messages postés20Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention26 juillet 2010 9 août 2003 à 14:02
Cettes source est exactement ce que je cherchais...
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 mars 2002 à 01:33
Merci Sahoni, c'est exactement ça.
Si vous faites des tests, ma première définition de recherche est plus rapide s'il faut chercher parmi les premiers éléments de la chaîne.
La deuxième méthode prend pratiquement toujours le même temps, quelque soit le numéro d'élément.
Donc :
-- Si vous ne traitez pas beaucoup de chaîne, choisissez plutôt la deuxième, plus pro
-- 1er méthode si vous avez à rechercher en grand nombre dans des petites chaînes
-- 2ème méthode si vous traitez des grosse chaînes
Merci encore
cs_shaoni
Messages postés186Date d'inscriptionmercredi 11 avril 2001StatutMembreDernière intervention12 septembre 2007 7 mars 2002 à 13:32
et apres voila la version simple et facile a comprendre
Private Function Element(Texte As String, Separateur As String, NumeroElement As Integer) As String
Dim tableau() As String
tableau = Split(Texte, Separateur)
If NumeroElement <= UBound(tableau) Then
Element = tableau(NumeroElement)
Else
MsgBox "Element " & NumeroElement & " en dehors des limites"
End If
End Function
Rachoo
Messages postés36Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention 9 avril 2002 6 mars 2002 à 17:37
Mouarf tu utilises des GoTo :)) revois ton code avec des While ça fait quand même beaucoup plus pros :) mais sinon pas mal pour le concept!
31 déc. 2005 à 11:02
20 avril 2004 à 18:44
-1- Si tu ne sais pas comment repérer tes chiffres dans la chaine, comment veux-tu qu'un programme y arrive ? Il n'y a même pas d'espace devant et derrière ?
Essaye la solution donnée ci-après et énumère chaque donnée du Tablo pour reconnaître un chiffre parmi les donneés.
-2- En effet, cette fonction ne retourne que le Xième élément. Donc s'il se déplace, il te faudra chercher partout.
Sinon, pour info, cette fonction avait été faite sous VB5 qui ne disposait pas encore de l'instruction Split de VB6.
Ce Split est beaucoup plus pratique :
Dim Tablo() As String
Tablo = Split(MaChaine, MonSéparateur)
En sortie, tu auras toutes les valeurs dans chacune des données qui composent ce Tablo.
Ca commence à Tablo(0) et fini à Tablo(UBound(Tablo))
Pour le cas -2-, il te suffira de faire une boucle pour repérer ton chiffre.
... et pas la peine de faire un courrier en plus de ce commentaire (perso, ça m'énerve et de toute façon, j'y répondrai)
20 avril 2004 à 15:28
Et en deuxiéme cas, il y a des séparateurs mais la valeur à extraire n'est pas toujours au même endroit. Dans ton prog : No a une valeur fixe.
Si tu pouvais me dire.
Sinon bravo!!!
9 août 2003 à 14:02
17 mars 2002 à 01:33
Si vous faites des tests, ma première définition de recherche est plus rapide s'il faut chercher parmi les premiers éléments de la chaîne.
La deuxième méthode prend pratiquement toujours le même temps, quelque soit le numéro d'élément.
Donc :
-- Si vous ne traitez pas beaucoup de chaîne, choisissez plutôt la deuxième, plus pro
-- 1er méthode si vous avez à rechercher en grand nombre dans des petites chaînes
-- 2ème méthode si vous traitez des grosse chaînes
Merci encore
7 mars 2002 à 13:32
Private Function Element(Texte As String, Separateur As String, NumeroElement As Integer) As String
Dim tableau() As String
tableau = Split(Texte, Separateur)
If NumeroElement <= UBound(tableau) Then
Element = tableau(NumeroElement)
Else
MsgBox "Element " & NumeroElement & " en dehors des limites"
End If
End Function
6 mars 2002 à 17:37