Former des bloc de caractère [Résolu]

Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Dernière intervention
16 juin 2016
- - Dernière réponse : ucfoutu
Messages postés
18039
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
Afficher la suite 

Votre réponse

8 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Dernière intervention
16 juin 2016
0
Merci
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
Commenter la réponse de dylan7581
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
" 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.
Commenter la réponse de ucfoutu
Messages postés
5622
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

En VB.Net voir ceci:


http://codes-sources.commentcamarche.net/source/100708-couper-un-texte-tous-les-x-mots-les-x-caracteres-ou-en-x-lignes

Excusez moi, je n'avais pas vu que c'était du VB6

voir ceci en vb6 avec un petit coucou à ucfoutu:

http://www.commentcamarche.net/forum/affich-30620530-decouper-une-chaine-de-caractere-tous-les-8-caracteres#39


@+ Le Pivert
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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)
Commenter la réponse de cs_Le Pivert
Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Dernière intervention
16 juin 2016
0
Merci
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! ;-)
Commenter la réponse de dylan7581
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
12
Date d'inscription
jeudi 4 septembre 2014
Dernière intervention
16 juin 2016
0
Merci
Merci de ton aide, et j'ai préférer donner plus de détaille pour bien montrer ce que je cherché à faire.
Commenter la réponse de dylan7581
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu

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.