Groupement de caractères...

Fermé
Roger0007 Messages postés 47 Date d'inscription vendredi 14 novembre 2014 Statut Membre Dernière intervention 4 novembre 2021 - Modifié par Roger0007 le 25/11/2016 à 15:54
Roger0007 Messages postés 47 Date d'inscription vendredi 14 novembre 2014 Statut Membre Dernière intervention 4 novembre 2021 - 8 déc. 2016 à 17:08
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 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
27 nov. 2016 à 15:02
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 vendredi 14 novembre 2014 Statut Membre Dernière intervention 4 novembre 2021 2
8 déc. 2016 à 17:08
Merci dubcek, ça fonctionne :)
0