Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Aide sur une boucle FOR : traitement caractère par caractère
Auteur Message
Répondre en citant
Message Aide sur une boucle FOR : traitement caractère par caractère 
Hello Smile

Je voulais savoir comment dans un fichier texte que voici, mettre dans une variable comme %%A chaque caractère avec différence MAJUSCULE et minuscule, MEME les espaces, les saut de lignes et les caractères spéciaux et les nombres.

Code:

Bonjour, je suis Skywalker  et j'ai 15 ans !
Je voudrais que l'on m'aide !!!!!!!!!!!!!

Mais ma boucle FOR foire :(

MEME avec les caractères spéciaux comme ceux là -> *£% ^ @çè'~" +-/\ §



J'ai testé ça ->
Code:
FOR /F "delims=" %%h in ('type "%Fichier%"') do echo %%h

Mais ça lit seulement le fichier Sad

-EDIT: Ce code source est pas mal !

Code:

@echo off&cls

set /p $var=Entrez votre string :
if ["%$var%"]==[""] set $var=developpez.com
echo Traitement de : %$var%

setlocal enabledelayedexpansion

:::Decomposition de la liste (test=t e s t)

:test
if defined $var (
                 set $car=%$var:~0,1%
                 set $l=!$l! !$car!
                 set $var=%$var:~1%
                 goto:test)

:::comptage de chaque occurence de lettre %%a dans liste %%b
:::si $count est égal à 1 en final de traitement on a trouvé la première lettre unique du string

for %%a in (!$l!) do (set $count=0
                      for %%b in (!$l!) do (if %%a==%%b set /a $count+=1)
                      echo %%a !$count!
                      if !$count!==1 call:fin %%a) &:: si il n'y a palus de 1 occurence de %%a on a trouvé

:fin
if !$count!==1 (echo.&echo Premiere lettre unique = %1&endlocal&pause&exit)
echo Aucune occurence unique&pause&exit



Mais comment faire pour gérer les ESPACES et les SAUTS DE LIGNES Crying or Very sad
Je sais je suis chiant Mr. Green Laughing Mr. Green

Ensuite, je voudrais, par exemple si la lettre extraite est le "e" je voudrais voir dans un fichier du type (comme ci-dessous) quel est le nombre à coté
Code:

'espace`=12
'saut de ligne`=1000
a=4587
b=884
c=8
d=848
e=589
etc................


Et faire un fichier texte avec la lettre "e" de remplacé par 589.

Pour mon fichier du haut, je voudrais que ça donne : "," entre deux lettres et "." entre deux mots. Et tous en linéaire (sur une ligne)

Code:

884,1,489,489,77,1567,849.12.9,489589. etc... (suis Skywalker  et j'ai 15 ans !).1000.489,589.(voudrais que l'on m'aide !!!!!!!!!!!!!).1000.(Mais ma boucle FOR foire :(MEME avec les caractères spéciaux comme ceux là -> *£% ^ @çè'~" +-/\ §)



Merci de votre aide Smile




______________________________________________________
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Re: Aide sur une boucle FOR 
Skywalker a écrit:

Ensuite, je voudrais, par exemple si la lettre extraite est le "e" je voudrais voir dans un fichier du type (comme ci-dessous) quel est le nombre à coté
Code:

'espace`=12
'saut de ligne`=1000
a=4587
b=884
c=8
d=848
e=589
etc................



Essaye ça
Code:

@echo off
:1
set/p lettre=A B ou C? 
for /f "tokens=1,* delims=," %%A in ('type test2.bat ^| Find "-%lettre%:"') do (
    cls
    echo %%A & pause
   )
goto 1
-a: A
-b: B
-c: C
pause

EDIT j'oubliais: met ça dans test2.bat sinon ça va pas ^^'




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Aide sur une boucle FOR : traitement caractère par caractère 
Citation:
-EDIT: Ce code source est pas mal !


Merci !

C'est bon de savoir que mes codes sont "pas mal"....




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Aide sur une boucle FOR : traitement caractère par caractère 
Mort de Rire




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message Aide sur une boucle FOR : traitement caractère par caractère 
Sérieusement, qui pourrais m'aider pour les saut de lignes et les espaces Crying or Very sad Crying or Very sad
JE GALERE SERIEUSEMENT !!! Evil or Very Mad (deux fois sérieusement Mort de Rire )

Merci pour ceux qui cherchent Okay




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message Aide sur une boucle FOR : traitement caractère par caractère 
Salut,

je peux t'aider sur ce coups ^
par contre je veux bien un exemple de ce que tu veux:
_ un modèle de fichier texte
_ le résultat souhaité
parce que là je t'avoue que je ne sais plus trop ce que tu veux Wink




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Aide sur une boucle FOR : traitement caractère par caractère 
Dans ce code il y a tous ce dont tu as besoin :

source : http://bbat.forumeiro.com/t216-bat-substitution-de-carcteres-dans-un-string…


les espaces sont remplacé ici par #
Et remplace le dir par un type de ton fichier. Essaie si tu as un prob. dis le nous Okay

Code:
:::par SachaDee
:::06-2013
:::www.bbat.forumeiros.com
:::www.batch.xoo.it.com

@echo off

setlocal enabledelayedexpansion

for /f "delims=" %%a in ('dir *.* /aa /b') do (set "$f=%%~na"
                                               set "$final="
                                               echo TRAITEMENT DE !$f!
                                               for /l %%i in (0,1,100) do (
                                                                          "set char=!$f:~%%i,1!"
                                                                          if "!char!"==" " "set char=#"
                                                                          if defined char (echo !char!

rem :::::::::::::::::::::::::::::::::::::::::::::::::::ICI ON FAIT LES SUBSTITUTIONS
rem :::::::::::::::::::::::::::::::::::::::::::::::::: DE CETTE MANIERE POUR TESTER LES MAJ ET MIN

                                                                          if !char!==a (set "char=!char:a=t!")
                                                                          if !char!==A (set "char=!char:A=T!")

rem ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
                                                                          set "$final=!$final!!char!"))
                                                echo "%%~Fa" "!$final:#= !%%~xa")




Dernière édition par sachadee le Ven 18 Juil 2014 - 23:34; édité 1 fois

______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Aide sur une boucle FOR : traitement caractère par caractère 
D'accord, merci Sacha !




______________________________________________________
Visiter le site web du posteur
Message Aide sur une boucle FOR : traitement caractère par caractère 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch