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

Secondary117 45 Messages postés lundi 28 novembre 2011Date d'inscription 26 décembre 2013 Dernière intervention - 18 avril 2013 à 14:17 - Dernière réponse : Secondary117 45 Messages postés lundi 28 novembre 2011Date d'inscription 26 décembre 2013 Dernière intervention
- 18 avril 2013 à 14:51
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Utilisateur anonyme - 18 avril 2013 à 14:31
3
Merci
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

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Meilleure réponse
Utilisateur anonyme - 18 avril 2013 à 14:47
3
Merci
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

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Secondary117 45 Messages postés lundi 28 novembre 2011Date d'inscription 26 décembre 2013 Dernière intervention - 18 avril 2013 à 14:41
0
Merci
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
Commenter la réponse de Secondary117
Secondary117 45 Messages postés lundi 28 novembre 2011Date d'inscription 26 décembre 2013 Dernière intervention - 18 avril 2013 à 14:51
0
Merci
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
Commenter la réponse de Secondary117

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.