Index du Forum




 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

StringField

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Visual Basic.Net -> Exemples de code
Sujet précédent :: Sujet suivant  
Auteur Message
Dayvid
Administrateur

Hors ligne

Inscrit le: 24 Oct 2012
Messages: 89
Localisation: Vienne - Poitiers (86000)
Masculin Lion (24juil-23aoû)
Point(s): 107
Moyenne de points: 1,20

MessagePosté le: Mar 1 Oct 2013 - 13:11    Sujet du message: StringField Répondre en citant

Salut,

Voici un petit code pour extraire des champs délimités par un ou plusieurs délimiteurs dans une chaîne de caractères.

Renvoie un champ d'une chaîne à l'index spécifié.
"Chaîne" est une chaîne de caractères contenant un ou plusieurs caractères qui délimite des champs.
"Delimiteur" est le ou les caractères choisis comme séparateur des champs de la chaîne.
La première position de 'Index' est 1.

Ce code renverra donc la partie entre le délimiteur à l'index demandé.
Exemple:

Code:
StringField("A, B, C, D", 1, ",")

Renverra: A

Code:
StringField("Ceci est une chaîne contenant des champs", 0, " ")

Renverra: Ceci

Code:
StringField("Ceci est une chaîne contenant des champs", 1, """")

Renverra: Ceci est une chaîne contenant des champs

Voici le module complet:
Code:
Module Module1

    Function CountString(Chaine As String, ChaineChercher As String, Optional RespecterCase As Boolean = False) As Long
        If ChaineChercher > "" Then
            If RespecterCase = True Then
                Return CLng((Len(Chaine) - Len(Replace(Chaine, ChaineChercher, "", , , CompareMethod.Binary))) / Len(ChaineChercher))
            Else
                Return CLng((Len(Chaine) - Len(Replace(Chaine, ChaineChercher, "", , , CompareMethod.Text))) / Len(ChaineChercher))
            End If
        Else
            Return 0
        End If
    End Function

    Function StringField(ByVal Chaîne As String, ByVal Index As Integer, ByVal Delimiteur As String) As String

        Dim IndexPart = 0

        If Index > 0 Then
            Index -= 1
        End If

        If Delimiteur > "" Then

            For Each Part In Chaîne.Split({Delimiteur}, StringSplitOptions.None)

                If IndexPart = Index Or IndexPart = CountString(Chaîne, Delimiteur, False) Then
                    Return Part
                End If

                IndexPart += 1

            Next

        Else
            Return Chaîne

        End If

    End Function

    Sub Main()

        Dim Chaîne As String = "Abc - - - Def - - - Ghi - - - Jkl - - - Mno - - - Pqr - - - Stu - - - Vwx - - - Yz"

        For i = 1 To 10
            Console.WriteLine(StringField(Chaîne, i, " - - - "))
        Next

        Console.ReadLine()

    End Sub

End Module

Si vous avez des questions ou autres, vous pouvez laisser vos avis, remarques et suggestions Clin d'œil / Conseil
_________________
Le respect n'est pas en option, mais une obligation !
Je serai intransigeant sur ce point-ci !

Veuillez s'il vous plait, aider les membres du mieux que vous le pouvez,
mais ne faites pas tout à leur place non plus, car ce n'est pas les aider !
La programmation est déjà assez difficile comme ça !


Revenir en haut
Publicité






MessagePosté le: Mar 1 Oct 2013 - 13:11    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Visual Basic.Net -> Exemples de code Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com