Groupement de caractères... [Fermé]

Signaler
Messages postés
48
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
23 novembre 2020
-
Messages postés
48
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
23 novembre 2020
-
Bonjour à tous,

Ayant quelques notions de base en programmation batch, je me suis lancé dans un projet censé transformer l'alphabet latin en un alphabet composé de trois signes différents (ici . : et ' ), ce qui me donne au total 3³ soit 27 possibilités: 26 lettres de l'alphabet et la dernière pour l'espace.

Je m'en suis sorti tout seul pour le passage de l'alphabet latin à l'alphabet composé mais pour l'inverse, un problème se pose.
je procède de la manière suivante (voici un extrait du programme):

echo Entrez le texte en alphabet latin:
SET /P _entr=
SET rtA=%_entr: ='''%
SET rtB=%rtA:a=...%
SET rtC=%rtB:b=..:%
SET rtD=%rtC:c=.:'%
SET rtE=%rtD:d=.:.%
SET rtF=%rtE:e=.::%
SET rtG=%rtF:f=.''%
SET rtH=%rtG:g=.'.%
SET rtI=%rtH:h=.':%
SET rtJ=%rtI:i=.''%
SET rtK=%rtJ:j=:..%
SET rtL=%rtK:k=:.:%
SET rtM=%rtL:l=:.'%
SET rtN=%rtM:m=::.%
SET rtO=%rtN:n=:::%
SET rtP=%rtO:o=::'%
SET rtQ=%rtP:p=:'.%
SET rtR=%rtQ:q=:':%
SET rtS=%rtR:r=:''%
SET rtT=%rtS:s='..%
SET rtU=%rtT:t='.:%
SET rtV=%rtU:u='.'%
SET rtW=%rtV:v=':.%
SET rtX=%rtW:w='::%
SET rtY=%rtX:x=':'%
SET rtZ=%rtY:y=''.%
SET _trad=%rtZ:z='':%
CLS
echo Traduction:
echo %_trad%
pause

Mais du coup, quand j'inverse l'alphabet composé avec l'alphabet latin, le programme voit par exemple le mot "bonjour" écrit ..:::'::::..::''.':'' le programme détecte tous les groupements de trois caractères formant des lettres qui lui sont connues, peu importe leur place dans le mot.
Vous l'avez compris, j'aimerais lui faire comprendre qu'il doit lire les caractères par groupes de trois indépendants des autres groupes, mais dans l'ordre de la table de 3. Soit "1ière lettre=3 premiers caractères, 2ièm lettre=3 caractères suivants, etc..." Mais comment ?

Si ce n'est pas possible, je suis ouvert à toute remise en question de mon programme :)

Merci d'avance.

1 réponse

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 328
hello
découpe un mot par groupe de 3 cars.
C:> cc
abc
def
ghi
j

C:> type cc.bat
@echo off
setlocal enabledelayedexpansion
set mot=abcdefghij
for /L %%a in (0,3,31) do (
set m=!mot:~%%a,3!
if defined m echo !m!
)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
48
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
23 novembre 2020
2
Merci dubcek, ça fonctionne :)