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 -
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.
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:
- Groupement de caractères...
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- Caracteres speciaux - Guide
- Exemple de mot de passe à 8 caractères - Guide
1 réponse
hello
découpe un mot par groupe de 3 cars.
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!
)
Roger0007
Messages postés
47
Date d'inscription
Statut
Membre
Dernière intervention
2
Merci dubcek, ça fonctionne :)