Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Couper une chaîne de caractères
Auteur Message
Répondre en citant
Message Couper une chaîne de caractères 
Bonjour bonjour,

Je fait ce topic parce que j'ai un petit problème ; je voudrais découper une chaîne de caractères et en faire des variables ; je m'explique.

Imaginons que l'on a cette chaîne : "Bonjour". Dans ce cas-là, je voudrais que ça donne des variables comme cela :

Variable 1=B
Variable 2=o
Variable 3=n
Variable 4=j
Variable 5=o
Variable 6=u
Variable 7=r

Voilà, comme ça. Sauf que ma chaîne de caractères fait 52 caractères. Donc 52 variables.

J'espère que j'ai été clair, si vous avez pas compris, dites-le moi et j'expliquerais mieux !


A bientôt,

Froxil




______________________________________________________
Pourquoi faire compliqué lorsqu'on peut faire encore plus compliqué ?
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Couper une chaîne de caractères 
Bonjour,

Voilà un exemple dont tu peux t'inspirer :

Code:
@echo off
Setlocal enableextensions enableDelayedExpansion

set string=Bonjour il fait beau aujourd'hui

for /L %%A in (0,1,33) do (
set var%%A=!string:~%%A,1!
echo( variable_%%A = !var%%A!
)

pause




Répondre en citant
Message Couper une chaîne de caractères 
barnabe0057 a écrit:
Bonjour,

Voilà un exemple dont tu peux t'inspirer :

Code:
@echo off
Setlocal enableextensions enableDelayedExpansion

set string=Bonjour il fait beau aujourd'hui

for /L %%A in (0,1,33) do (
set var%%A=!string:~%%A,1!
echo( variable_%%A = !var%%A!
)

pause


Super, merci beaucoup ! Okay




______________________________________________________
Pourquoi faire compliqué lorsqu'on peut faire encore plus compliqué ?
Répondre en citant
Message Couper une chaîne de caractères 
Mais le code proposé nécessite de compter le nombre de caractères de la chaîne (dans son exemple, 33 est spécifié dans for/L), pour ensuite adapter le code en conséquence (dans le for/L, donc).

Voici une version qui s'adapte peu importe la longueur de la variable string, en bonus on peut même prendre les caractères de 1 en 1, de 2 en 2, même de 10 en 10 peu importe :
Code:
@echo off
setlocal enabledelayedexpansion

:: Input
set /p str=STR Entrez du texte ^>
set /p pas=INT Specifiez le pas (de 1 en 1, de 2 en 2, etc.) ^>

:: Initialise le numéro pour le nom de la variable
set nb=1


:loop

:: Récupère le premier caractère de la chaîne (traduction littérale de la ligne : prend le premier caractère)
set tmp=!str:~0,%pas%!

:: Vire le premier caractère de la chaîne (traduction littérale de la ligne : conserve tout sauf le premier caractère)
set str=!str:~%pas%!

:: Définit var1 lors du 1er tour, var2 lors du 2ème tour, etc
set var!nb!=!tmp!

:: Vérifie qu'on ait pas déjà tout traité
if "%str%"=="" goto fin

:: Incrémente pour le tour suivant
set /a nb+=1

goto loop


:fin
:: Affiche les variables
for /L %%A in (1,1,%nb%) do echo var%%A = !var%%A!
pause
exit


Exemples :







______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :

Hugo7, sans faire exprès... a écrit:
Il conviendra de [...] supprimer le panneau de la liste des panneaux présente dans une variable liste dans la liste des variables.
Visiter le site web du posteur Skype
Répondre en citant
Message Couper une chaîne de caractères 
Un peu sur le même principe :

Code:
@echo off
set /p string=:
for /f "tokens=1* delims=[]" %%i in ('"%comspec% /u /c echo:%string%|find /n /v """') do set /a "lenght=%%i-3" &echo;%%i - %%j
echo;
echo;%string% fait %lenght% caractŠre(s) de long.
echo;
pause


Okay




______________________________________________________
Visiter le site web du posteur
Message Couper une chaîne de caractères 


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