Couper une chaine de texte en 4 parties [Résolu]

Signaler
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
-
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
-
Bonjour ;D,
Dans mon projet, je crypte une chaine de texte quelconque,
et grace a la fonction "Mid()" je garde seulement les 16 premiers caractères e mon string:

Ex:
dim str as string = "11112222333344445555"
str = Mid(str, 1, (Len(str) + 16) - Len(str))

Le "résultat" de str sera donc "1111222233334444" (j'ai gardé les 16 permiers caracteres)
Mais, je veux, comme un numéro de série, couper ce string en 4 parties "égales" avec, par exemple, un tiret "-"
> "1111-2222-3333-4444"
J'ai cherché du coté Regex, split, mais je n'ai pas de réponses concrètes. C'est pour cela que je vous demande de l'aide.

Merci beaucoup,
Cordialement,
Secondary
A voir également:

4 réponses


Bonjour,
Split ne sera pas applicable car il n'y a pas de séparateur
La fonction Mid() étant plutôt utilisée en VB6, en .Net nous avons ToCharArray plus efficace (je pense):
        Dim str As String = "11112222333344445555"
        str = str.ToCharArray(0, 16)
        str = str.ToCharArray(0, 4) & "-" & str.ToCharArray(4, 4) & "-" & str.ToCharArray(8, 4) & "-" & str.ToCharArray(12, 4)
        MsgBox(str)


Ou carrément:
        Dim str As String = "11112222333344445555"
        str = str.ToCharArray(0, 4) & "-" & str.ToCharArray(4, 4) & "-" & str.ToCharArray(8, 4) & "-" & str.ToCharArray(12, 4)
        MsgBox(str)


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

str.ToCharArray(0, 4)

caractere 0 au caractere 4

Non, il lit du caractère 0 au caractère 3 = 4 caractères
En suite il commence du caractère 4 au chr 7 = 4 caractères toujours


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
1
Salut acive, eh bien merci pour cette réponse claire et précise.
Il est vrai que la méthode
str = str.ToCharArray(0, 16)

Est plus simple que mon "Mid()", merci pour l'info et la réponse :D

Mais je n'ai pas trop compris son fonctionnement,

        Dim str As String = "11112222333344445555"
        str = str.ToCharArray(0, 4) & "-" & str.ToCharArray(4, 4) & "-" & str.ToCharArray(8, 4) & "-" & str.ToCharArray(12, 4)
        MsgBox(str)


str = str.ToCharArray(0, 4) & "-"
sert à "Séléctionner" le caractere 0 au caractere 4 et d'y rajouter "-"

str.ToCharArray(4, 4) & "-"
sert à "Séléctionner" le 4e caractère aux 4 prochains caractères (c'est a dire 5 6 7 8) c'est bien ça ?

Et ainsi de suite...

C'est un peu confus.. (Désolé, je suis encore en apprentissage :D)

Cordialement,
Secondary
Messages postés
44
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
26 décembre 2013
1
Merci pour m'avoir éclairé, j'ai compris le fonctionnement maintenant.
Et encore merci pour ta réponse plus haut, elle fonctionne a merveille.

Cordialement,
Secondary