Former des bloc de caractère

Résolu
dylan7581
Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Statut
Membre
Dernière intervention
16 juin 2016
- 4 avril 2016 à 18:20
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 6 avril 2016 à 08:13
Bonjour,

Voilà je cherche comment séparé des caractères (entré dans une textbox) en bloc de 3 comme si : azerty = aze rty pour ensuite manipuler chaque bloc.

Merci

8 réponses

ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 5/04/2016 à 00:36
Bonjour,
Tu as donné un exemple clair, mais subordonné à un nombre de caractères multiple de 3.
Dis-nous (ce sera bien plus clair) comment tu décomposerais par exemple "azertyxx"
sera-ce : "aze rty xx"
ou
"az ert yxx"
Distinguo important, non ? (lis ma signature)

EDIT : et je te relis :
comme si : azerty = aze rty pour ensuite manipuler chaque bloc

Quelle est la finalité exacte ?
Car passer de "azerty" à "aze rty" est une chose.
Constituer un tableau de deux éléments "aze" & "rty" en est une autre.
Et si tu penses transformer d'abord "azerty" en "aze rty" pour ensuite créer un tableau avec un Split sur " ", tu alourdis le traitement alors que tout peut être fait sans ce "tremplin"

Tu vas devoir être précis ...

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
dylan7581
Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Statut
Membre
Dernière intervention
16 juin 2016

5 avril 2016 à 02:40
Pour être plus clair je vous montre un autre exemple :
"je suis dans un forum" = "jes uis dan sun for um"

Mais je n'est pas compris la suite de votre commentaire pouvez vous me l'expliquer d'une autre facon.
Merci
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
5 avril 2016 à 08:06
" je n'est pas compris la suite de votre commentaire pouvez vous me l'expliquer d'une autre facon"
que n'as-tu pas compris ?
J'y vais donc avec des bûchettes :
1) ce que l'on sait maintenant :
-- tu traites donc une chaîne de caractères alphabétiques et non un nombre.
-- tu la transformes comme montré
2) que veux-tu en faire en suite ? tu dis :
"pour ensuite manipuler chaque bloc."
explique comment tu veux les "manipuler".
Ton explication permettra de déterminer s'il convient ou non d'utiliser d'emblée un "éclatement" ou non.
Contente-toi pour l'instant de répondre.
0
cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
Modifié par cs_Le Pivert le 5/04/2016 à 08:19
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 5/04/2016 à 10:20
Bonjour, Le Pivert,
C'est bien plus simple en VB6, alors .
Regarde ===>>
 toto = "je suis dans un forum"
toto = Replace(toto, " ", "") ' ===>> on ote les " ", puisqu'il les déplace
titi = Split(StrConv(toto, vbUnicode), Chr(0))
For i = 2 To UBound(titi) - 1 Step 3
titi(i) = titi(i) & " "
Next
toto = Join(titi, "")


Ma première méthode me plait bien plus que toute autre.
Mais juste pour montrer au demandeur que plusieurs chemins mènent à Rome :
Voilà sans vbunicode et avec format :
toto = "je suis dans un forum"
toto = Replace(toto, " ", "")
r = Len(toto) Mod 3
For i = 0 To Len(toto) \ 3 ' attention : \ et non /
flt = flt & "@@@ "
Next
flt = flt & String(r, "@")
toto = Format(toto, flt)

sans compter tout un tas de possibilités autres avec Mid et même avec len, left et right (plus lent, mais à la portée de tout débutant)
0

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

Posez votre question
dylan7581
Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Statut
Membre
Dernière intervention
16 juin 2016

5 avril 2016 à 21:37
Bonjour,
Mon projet est de créer un logiciel de cryptage et de décryptage.
Pour vous éclairez, je vais vous expliquer comme il fonctionne.
-Pour commencer, on rentre dans la textbox une phrase à crypter :
"comment cela marche"
-Ensuite, le logiciel va séparer en bloc de 3 :
"com men tce lam arc he"
-Après, j'ai "créer" 126 clé de cryptage. Je m'explique :
je choisis une clé : "AY" le milieu de A et de Y c'est "M" (mais "AZ" ne fonctionne pas car le milieu de A et de Z c'est entre 2 lettres donc pas possible).
Chaque bloc à une clé :
"c-a-o-y-m m-a-e-c-n ... h-b-e-d"
[chaque lettres d"une clé se trouvent à droite (ou à gauche pour la 2e lettre de la clé) d'une lettre]
Ensuite, pour le 1er bloc par exemple a étant la 1ère lettre, c (la lettre à ça droite) sera décalé d'une nombre de lettre de la clé :
a = 1
donc c = d
puis la lettre entre les lettre de la clé sera décaller de la moitié des 2 lettres :
le milieu de A et Y est M et M = 13
donc o = b (arrivé à z on recommence l'alphabet).
"d-a-b-y-l ... j-b-i-d"
et donc ça donne cela:
"dabyl ... jbid"
Mais ce n'est pas fini car pourquoi créer 126 clé si c'est pour ne pas toute les utilisés.
C'est pour cela que le logiciel va tester chaque clé, pour que chaque bloc forme un mot français pour que personne ne se doute du cryptage. Mais si le logiciel ne trouve pas de mot il devra choisir au hasard une clé.
Et voilà j'espère que cela est assez clair! ;-)
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 5/04/2016 à 21:47
Bien ...
Il n'était pas utile de rentrer dans tous ces détails.
Il suffisait de dire ici que tu allais te servir de chacun des blocs à des fins de chiffrement (c'est le mot français pour ton "cryptage").
Et je me garderai de commenter l'efficacité (et "discrétion", surtout) d'un tel chiffrement (euh ...), mais c'est là ta seule affaire.
Tu as donc eu ta solution (voire deux) plus haut.
On peut mettre cette discussion en RESOLU ?


________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
dylan7581
Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Statut
Membre
Dernière intervention
16 juin 2016

5 avril 2016 à 21:46
Merci de ton aide, et j'ai préférer donner plus de détaille pour bien montrer ce que je cherché à faire.
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Modifié par ucfoutu le 6/04/2016 à 08:18
Tiens,
J'y ajoute celle-ci, pour ceux qui aiment les chaînes fantômes :
toto = "je suis dans un forum"
titi = StrConv(Replace(toto, " ", ""), vbUnicode)
For i = 6 To Len(titi) Step 6
Mid(titi, i, 1) = " "
Next
toto = Replace(titi, Chr(0), "")

Pour ceux qui s'interrogent : titi, dans cet exemple, a une longueur de 34 caractères, bien que msgbox titi n'en affiche que le 1er (because le second est un caractère null de terminaison)

Et pour ceux qui souhaitent savoir pourquoi 6 ===>
6 = (1 caractère + chr(0)) * 3 (longueur du bloc)

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0