Couper une chaine de caractere tous les 8 caracteres

remy4wer Messages postés 26 Date d'inscription mercredi 6 août 2014 Statut Membre Dernière intervention 9 août 2014 - Modifié par remy4wer le 7/08/2014 à 14:56
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 8 août 2014 à 12:14
Bonjour,
je suis debutant sur vb.net ,j aimerai que vous m'aideriai car j'aimerai pouvoir coupé un chaine de caractere tous les 8 caractères en les separant d'un espace. est ce possible?
merci d'avance pour votre aide :)

6 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
7 août 2014 à 15:18
Message déplacé dans la catégorie VB.Net. Merci d'y faire attention la prochaine fois.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
7 août 2014 à 15:27
Bonjour avec la méthode Insert:
Dim resultat = "1234567890".Insert(8, " ")

0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
7 août 2014 à 17:27
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
7 août 2014 à 19:59
On peut le faire aussi avec une Regex

Imports System.Text.RegularExpressions
....


        'déclare une regex avec 8 caractères indiférents comme patern
        Dim maRegex As New Regex(".{8}")
        'dans la chaine d'entrée, la fonction va remplacer chaque partie qui correspond au partern par le résultat de la fonction délégué                           return le texte qui correspond au patern auquel est ajouté un espace
        Dim resultat As String = maRegex.Replace("un_essai_de_texte_ou_inserer_un_espace_tous_les_8_caractères", Function(correpondanceAuPatern As Match) correpondanceAuPatern.ToString() & " ")


résultat est égal à "un_essai _de_text e_ou_ins erer_un_ espace_t ous_les_ 8_caract ères".

et pour le sujet montré par Le Pivert, il suffit de faire un split:
Dim morceauxDe8() As String = resultat.Split({" "c}) 'retourne un tableau contenant les morceaux précedement séparés par un espace

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 août 2014 à 09:33
Bonjour Whismeril,

J'ai essayé ton code, l'espace n'est pas reconnu, par contre ":" est reconnu! J'ai donc contourné le problème comme ceci:

 Dim maRegex As New Regex(".{8}")
'dans la chaine d'entrée, la fonction va remplacer chaque partie qui correspond au partern par le résultat de la fonction délégué return le texte qui correspond au patern auquel est ajouté un espace
Dim resultat As String = maRegex.Replace("Laphrasequejaimeraisdécouperenpartiede8caractères", Function(correpondanceAuPatern As Match) correpondanceAuPatern.ToString() & " ")
Dim morceauxDe8() As String = resultat.Split({" "c}) 'retourne tableau contenant les morceaux précedement séparés par un espace
For i = 0 To morceauxDe8.Count - 1
TextBox1.AppendText(morceauxDe8(i) & " ")
Next i

TextBox1.AppendText(morceauxDe8(i) & " ")

Qu'en pense-tu?

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
8 août 2014 à 09:49
Bonjour, qu'entends par espace non reconnu, j'ai VB express 2010 et le code tel que je l'ai présenté fonctionne (s'il y a déjà des espaces dans le string d'origine ça va cafouiller au nivaux du salit, mais il suffit alors de choisir une séquence improbable comme séparateur =*$!%£ par exemple).
Et dans le code que tu montres, tu n'utilises pas le ":"
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 août 2014 à 10:14
Ce que j'entend par là:

   Dim maRegex As New Regex(".{8}")
        'dans la chaine d'entrée, la fonction va remplacer chaque partie qui correspond au partern par le résultat de la fonction délégué                           return le texte qui correspond au patern auquel est ajouté un espace
        Dim resultat As String = maRegex.Replace("Laphrasequejaimeraisdécouperenpartiede8caractères", Function(correpondanceAuPatern As Match) correpondanceAuPatern.ToString() & " ")
        Dim morceauxDe8() As String = resultat.Split({" "c}) 'retourne tableau contenant les morceaux précedement séparés par un espace
        For i = 0 To morceauxDe8.Count - 1
            TextBox1.AppendText(morceauxDe8(i))
        Next i


retourne:

Laphrasequejaimeraisdécouperenpartiede8caractères

Par contre ce code:

  Dim maRegex As New Regex(".{8}")
        'dans la chaine d'entrée, la fonction va remplacer chaque partie qui correspond au partern par le résultat de la fonction délégué                           return le texte qui correspond au patern auquel est ajouté un espace
        Dim resultat As String = maRegex.Replace("Laphrasequejaimeraisdécouperenpartiede8caractères", Function(correpondanceAuPatern As Match) correpondanceAuPatern.ToString() & "&")
        Dim morceauxDe8() As String = resultat.Split({" "c}) 'retourne tableau contenant les morceaux précedement séparés par un espace
        For i = 0 To morceauxDe8.Count - 1
            TextBox1.AppendText(morceauxDe8(i))
        Next i


retourne:

Laphrase&quejaime&raisdéco&uperenpa&rtiede8c&aractère&s

Voilà ce que j'ai!
C'est pour cela que j'en conclu que l'espace n'est pas reconnu
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
8 août 2014 à 10:20
Ok, dans le premier code il n'y avait pas & "&", d'ou ma question.
Chez moi ça marche c'est étrange.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 août 2014 à 10:34
Oui c'est étrange, j'ai essayé de mettre 2 points séparés par un espace comme ceci:

". ." cela me renvoie: .. 2 points collés

Mystère et boule de gomme
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
8 août 2014 à 11:58
Je suis sous XP SP3 et VS 2010 framework 4.0 et toi?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
8 août 2014 à 12:14
Je suis sous Windows 8.1 et Visual Basic 2010 Express avec le framework 4.0
0
Rejoignez-nous