IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Fonction split avancée avec découpage aux espaces et regroupement de mot de 2 ou 3 caractères [Débutant]


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Fonction split avancée avec découpage aux espaces et regroupement de mot de 2 ou 3 caractères
    Bonjour,

    Je souhaiterai modifier le code ci-dessous afin que le résultat ne soit pas simplement :

    le
    chien
    dors
    sur
    le
    tapis

    mais :

    le chien
    dors sur
    le tapis

    Autrement dit, il faudrait, en plus de tronquer la chaine de caractères à chaque espace, regrouper les petits mots afin d'atteindre des messages de 8 caractères maximum, sans couper les mots, mais je n'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim s As String
    Dim t() As String
    Dim i As Long
     
    s = "le chien dort sur le tapis"
     
    t = Split(s, " ")
     
    For i = 0 To UBound(t())
    Debug.Print t(i)
    Next i
    Debug.Print
    Je vous remercie par avance.

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 93
    Points : 127
    Points
    127
    Par défaut
    Quand tu dis 8 caractères, tu comptes l'espace en tant que caractère ou pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Public Function SepareEtRegroupe(mot As String, taille As Byte) As [String]()
    	Dim t As [String]() = mot.Split(" ")
    	Dim bufferString As String = ""
    	Dim bufferList As New List(Of [String])()
    	For Each s As String In t 'Pour chaque mot dans mon tableau
    		If bufferString = "" Then 'Si mon tampon vaut rien
    			bufferString = s 'Je lui attribue une valeur
    		Else 'Si y vaut déjà quelque chose
    			If (bufferString.Length + s.Length + 1) <= taille Then 'Je vérifie que sa taille actuelle, plus la taille du mot qui suit, et le 1 équivaut à l'espace qui sera entre les 2 mots
    				bufferString += Convert.ToString(" ") & s 'Si le tout est inférieure a notre taille définie, bah je concatène
    			Else
    				bufferList.Add(bufferString) 'Si jamais ça dépasse bah je le met dans ma liste
    				bufferString = s 'Vu que cela a dépassé je sauvegarde mon mot
    			End If
    		End If
    	Next
    	If bufferString <> "" Then 'Si à la fin y reste un mot, qui n'aurait pas pu etre traité plus haut, je l'ajoute
    		bufferList.Add(bufferString)
    	End If
    	Return bufferList.ToArray()
    End Function
    Je l'ai fait direct sur le fofo mais y devrait pas y avoir de faute, allez je file.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    Merci pour cette réponse ! Oui je compte les espaces en tant que caractère. Par contre, cela peut paraitre simple pour toi, mais comment je peux voir le résultat dans un debug du genre Debug.Print() ? C'est la valeur bufferlist qui contient le tableau des "mots" de 8 caractères ?

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 93
    Points : 127
    Points
    127
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim s As String
    Dim t() As String
    Dim i As Long
     
    s = "le chien dort sur le tapis"
     
    t = SepareEtRegroupe(s, 8)
     
    For i = 0 To UBound(t())
    Debug.Print t(i)
    Next i
    J'ai fait en sorte que la fonctione retourne un tableau comme le Split le fait de base

    Oui c'est bien la Variable bufferList qui contient le résultat attendu.

    EDIT : j'ai changé un bout de code car je me suis trop focalisé sur ton exemple

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    Impec ! Ca fait exactement ce que je voulais ! Merci beaucoup !

  6. #6
    Membre habitué
    Homme Profil pro
    Automaticien
    Inscrit en
    Avril 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 96
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    Donner du code comme ça ça a très peu d'interêt..
    Il aurait fallu l'aiguiller pour qu'il puisse apprendre de lui même.
    M'enfin, j'espère que tu as pris le temps de relire et comprendre le code donné par Kangourex.

  7. #7
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par ekydeta Voir le message
    Bonjour,

    Donner du code comme ça ça a très peu d'interêt..
    Il aurait fallu l'aiguiller pour qu'il puisse apprendre de lui même.
    M'enfin, j'espère que tu as pris le temps de relire et comprendre le code donné par Kangourex.
    je suis tout a fait d accord avec ton intervention....
    Voilà comment faire des membres de cette communauté des pseudos developpeurs écervelés, dépourvus de gout pour l effort......


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]Problème avec la Fonction Split
    Par Goupo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/06/2007, 19h23
  2. Leger probleme avec la fonction split
    Par gbouchat dans le forum ASP
    Réponses: 1
    Dernier message: 31/05/2007, 19h56
  3. [Tableaux] problème avec la fonction split()
    Par Marcus15 dans le forum Langage
    Réponses: 3
    Dernier message: 26/02/2007, 11h17
  4. découper un datetime avec la fonction split
    Par moook dans le forum Langage
    Réponses: 7
    Dernier message: 03/10/2006, 10h52
  5. [debutant]fonction "split" avec une chaine comme m
    Par EpOnYmE187 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/11/2005, 22h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo