Groupement de caractères...

Roger0007 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -  
Roger0007 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

1 réponse

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
Roger0007 Messages postés 47 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci dubcek, ça fonctionne :)
0