Les langages de programmation

Venez apprendre les langages de programmation à votre rythme
 
AccueilGalerieCalendrierFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Cour n°09 La grande boucle FOR

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Groovitron
Professeur
Professeur
avatar

Nombre de messages : 201
Réputation : 4
Date d'inscription : 20/07/2010

MessageSujet: Cour n°09 La grande boucle FOR    Sam 27 Nov - 17:35

Ici , je vais vous montrer le plus simplement possible comment se servir de la commande "FOR" :

Tous d'abord, la commande "FOR" veut dire "Pour", c'est une commande permettant de faire des boucles.

Sans paramètre précis, elle sert à donné une valeur à une variable puis une autre ...

FOR %%A IN (valeur que va prendre %%A) DO CommandeAExecuter

Exemple :



Code:

@ECHO OFF
FOR %%A IN (0 1 2 3 4 5 6 7 8 9 10) DO ECHO.%%A
PAUSE
Traduction :
%%A va prendre la valeur de 0, de 1, de 2 ... tout en - a chaque fois - executant la commande spécifier (ici : ECHO.%%A)
Donc le programme va afficher :
0
1
2
3
4
5
6
7
8
9
10
Appuyer sur une touche pour blablabla ...



Il existe plusieurs paramètre , nous allons en voir que 2 : /F et /L ,

Le paramètre /L sert a faire une incrémentation a chaque boucle , en commençant par une certaine valeur appeler l'origine et en finissant par une autre nommée la fin :
L'origine et la fin sont a spécifier dans la parenthèse , ainsi que le pas,

La variable %%A (je dis bien la variable %%A et non pas A !) va prendre pour premiére valeur l'origine ,elle va étre incrémenter du pas tous en executant la commande spécifier, jusqu'a être égale a la fin.

Syntaxe:
Code:

FOR /L %%A IN (Origine,pas,fin) DO CommandeAExecuterAChaqueBoucle

Exemple:
Code:

@ECHO OFF
FOR /L %%A IN (0,1,10) DO ECHO.%%A
PAUSE
Ce code fais exactement la même chose que le précédant.





Le paramètre /F sert à fouiner dans des fichiers, ceci est un peu plus (beaucoup ?) compliquer,

Imaginons un fichier texte nommé "Ex", il aura l'extension .txt

Son nom complet sera donc Ex.txt

Il contient ceci :
Code:

12.38.28
17.12.00
07.01.56
23.21.04
Il contient une liste d'heures quelconque


(Pour les exemples qui suivront nous aurons besoin de ce fichier, donc créer le.)

La boucle FOR (Ou la commande) a besoin de quelques options pour fonctionner :
-Le nombre de colonne
-Les caractère constituant les délimitations de ces colonnes



Le but est très simple :

afficher l'heure écrite dans le fichier (donc les heures , les minutes , et les secondes) du fichiers Ex.txt

pour cela la 1ere colonne contiendra les heures, la seconde colonnes contiendra les minutes et la dernière ; les secondes.

Syntaxe :
Code:

FOR /F "LesOptions" %%VariableDeDébut IN (UnFichierAvecSonExtension) DO CommandeAExecuter
Si on écrit ceci :
Code:

FOR /F %%A IN (Ex.txt) DO ECHO.%%A
PAUSE

Il va afficher tout le contenu du fichier par ligne , donc
Lors de la première boucle, %%A contiendra la première ligne du fichier c'est a dire : 12.38.28
Lors de la deuxième boucle, %%A contiendra la deuxième donc : 17.12.00
Etc
...


Donc il affichera :
12.38.28
17.12.00
07.01.56
23.21.04
Appuyer sur un truc pour continuer ...


Donc pour résumer, %%A va prendre tout les caractères de toutes les lignes (Sauf une exception que nous verrons)

C'est là que les option vont être utile !

Dans les options on va rajouter à la Boucle FOR un moyen de "trier" les caracteres pris par %%A.


NOTE : En programmation, une suite de caractères (Nombre ou Lettre) s'appelle une Chaine de caractère.


On peut ainsi définir des options qui seront enregistrer dans des variables propre a la boucle FOR :

Il existe 4 options paramétrable:

_ La variable EOL sert à définir un caractère qui va permettre a la boucle FOR d'ignorer TOUTE les lignes commençant par ce caractère . (Par défault il n'y a pas de caractère)

_ La variable SKIP sert à définir le nombre de lignes à ignorer en début de fichier.

_ La variable TOKENS sert à définir le nombre de colonnes pris par la boucle FOR .
Note : La première colonne va être enregistrer dans la variable de départ (Ici %%A) la seconde donc, dans %%B la troisième dans %%C ... Etc.

_ La variable DELIMS sert à définir les caractère servant à délimiter TOUTE les colonnes, si vous vouler plusieurs caractères différent , il faut les espacer par des virgules.




Eeet a suivre ...


Dernière édition par Groovitron le Mar 1 Oct - 6:44, édité 4 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Sprider
Fondateur
Fondateur
avatar

Nombre de messages : 285
Localisation : sur Terre !
Réputation : 9
Date d'inscription : 23/06/2007

MessageSujet: Re: Cour n°09 La grande boucle FOR    Sam 27 Nov - 18:41

franchement , c'est magnifique!! ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rider.keuf.net
zephir
Jeune Programmeur
Jeune Programmeur
avatar

Nombre de messages : 30
Age : 26
Réputation : 11
Date d'inscription : 19/05/2013

MessageSujet: Re: Cour n°09 La grande boucle FOR    Dim 19 Mai - 22:37

vraiment bien expliquer Very Happy merci ^^

_________________


Twisted Evil Zephir∴ /Z|->_S-V.P.M.C_< -|Я Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
gael
Nouveau Programmeur
Nouveau Programmeur


Nombre de messages : 7
Réputation : 10
Date d'inscription : 13/05/2015

MessageSujet: Re: Cour n°09 La grande boucle FOR    Mer 13 Mai - 15:01

svp dans qu'elle repertoire doit on mettre le fichier Ex.txt?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Groovitron
Professeur
Professeur
avatar

Nombre de messages : 201
Réputation : 4
Date d'inscription : 20/07/2010

MessageSujet: Re: Cour n°09 La grande boucle FOR    Mer 13 Mai - 17:08

Tu dois les mettre dans le même répertoire que celui où tu exécute ton fichier Batch, ou alors quand tu l'appelle tu peux fournir son chemin complet : Par exemple C:\Exemple\Ex.txt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Cour n°09 La grande boucle FOR    

Revenir en haut Aller en bas
 
Cour n°09 La grande boucle FOR
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Boucle de retournement
» [Périmé] image trop grande
» messages envoyés en boucle
» boucle de retournement
» Boucle avec une alarm

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Les langages de programmation :: Les Cours de Programmation :: Cours de BATCH (.bat)-
Sauter vers: