Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1529 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [batch dos RESOLU] lire nombre dans fichier et l'exploiter pour calcul

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[batch dos RESOLU] lire nombre dans fichier et l'exploiter pour calcul

n°815050
jefe
Posté le 04-08-2004 à 16:47:32  profilanswer
 

Bonjour,  
 
Voici ma problématique :
 
Lire dans un fichier texte (toto.txt) un nombre.
Prendre ce nombre pour effectuer un calcul (l'incrémenter de +1).
ranger le nombre incrémenté dans ce meme fichier.
 
Ma solution (qui ne fonctionne pas bien entendu) :  
FOR /F "" %%i IN (toto.txt) DO ( SET /A x=%i% + 1 >> toto.txt )
 
Quelqu'un peut il me venir en aide pour me corriger svp ?


Message édité par jefe le 05-08-2004 à 11:31:48
mood
Publicité
Posté le 04-08-2004 à 16:47:32  profilanswer
 

n°815058
Mara's dad
Yes I can !
Posté le 04-08-2004 à 17:04:42  profilanswer
 

Impossible en DOS pur :/


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°815068
jefe
Posté le 04-08-2004 à 17:17:11  profilanswer
 

ben, j'ai presque reussit la chose en passant par echo sur la valeur calculée, mais ca ne fonctionnait que si je lancait le prog depuis une console, et ca ecrit n'imp. si je le lance directement depuis windows.... et encore ca n'incrementait qu'une fois sur deux. Voila pourquoi j'aimerais me passer de la commande echo.
 
En fait, je sait pas comment utiliser la variable %%i
 
quelqu'un peut t il me donner la theorie (differences) sur :
i
%i
%%i
%i%
 
merci


Message édité par jefe le 04-08-2004 à 17:21:36
n°815140
Arrakeen
Posté le 04-08-2004 à 17:52:22  profilanswer
 

ici faut que tu fasses déjà un :  
SET /A x=%%i + 1
dans ta boucle...

n°815165
jefe
Posté le 04-08-2004 à 18:13:49  profilanswer
 

merci, mais je suis toujours en galere :(
 
sinon, pour comprendre un peu j'ai fait ceci :

Code :
  1. @echo off
  2. FOR /F "" %%i IN (toto.txt) DO (
  3. SET /A i=%%i + 1
  4. echo %i% > toto.txt
  5. )


donne ce resultat quand le prog est lancé depuis une console DOS :
 
toto.txt contient 3
toto.txt contient 3
toto.txt contient 4
toto.txt contient 4
toto.txt contient 5
toto.txt contient 5
etc... bref ca incremente un coups sur 2
d'ou ma question sur la difference entre i, %i% et %%i ... j'ai rien trouve pour le moment de bien sur le net expliquant la chose


Message édité par jefe le 04-08-2004 à 18:17:24
n°815517
jefe
Posté le 05-08-2004 à 09:37:51  profilanswer
 

Alors voici un code qui fonctionne, c'est à dire qu'il lit un nombre dans un fichier texte, l'incrémente et range le nombre incrémenté dans ce meme fichier texte, mais comme j'ai toujours pas bien compris l'essence de la chose (j'y suis arrivé par tatonnements), ce code est pas beau ... s'il y a des amateurs pour corriger et faire un truc plus propre ...
 

Code :
  1. @echo off
  2. cls
  3. SET %%i=0
  4. SET %%y=0
  5. FOR /F "" %%i IN (toto.txt) DO (
  6. SET /A y=%%i + 1
  7. echo %y% > toto.txt
  8. )
  9. FOR /F "" %%i IN (toto.txt) DO (
  10. SET /A y=%%i + 1
  11. echo %y% > toto.txt
  12. echo DANS TOTO.TXT IL Y A : %y%
  13. )


Message édité par jefe le 05-08-2004 à 09:38:55
n°815548
Arrakeen
Posté le 05-08-2004 à 09:59:02  profilanswer
 

marrant ce comportement en effet !! j'ai aussi le meme probleme.  
tjrs est-il jefe que ton code marche bien c'est le principal...et je dirais comme aux chiffres et aux lettres : pas mieux ;-)

n°815623
jefe
Posté le 05-08-2004 à 10:57:28  profilanswer
 

Bon, voici finalement une version plus "propre" et fonctionnelle.
Comme quoi il ne faut jamais desesperer !
 

Code :
  1. @echo off
  2. SET %%x=0
  3. FOR /F %%i IN (toto.txt) DO SET /A x=%%i+1
  4. echo %x% > toto.txt


n°815800
Mara's dad
Yes I can !
Posté le 05-08-2004 à 12:40:30  profilanswer
 

SET %%x=0 ne sert à rien.
 
Sinon, bravo, je ne connaissais pas /F pour FOR ni /A pour SET. M'enfin je préfère utiliser WSCRIPT ou CSCRIPT


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°816162
jefe
Posté le 05-08-2004 à 16:59:16  profilanswer
 

Moi non plus au depart je connaissais pas .... c'est grace a des recherches dans le forum que j'ai trouve ces pistes (vive la fonction RECHERCHER).
Sinon, pour l'initialisation de %%x au debut, tu as raison, on peut tout a fait l'enlever !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [batch dos RESOLU] lire nombre dans fichier et l'exploiter pour calcul

 

Sujets relatifs
Créer fichier word en vbaDroits quand on crée un fichier ou un dossier en php
Obtenir le Nombre de collones sans la fonction num_fields[Excel][Résolu] pb de variable avec une feuille
[ASM] Optim : précalcul en mémoire ou calcul sur registres ?fin de processus lors d'acces fichier
[batch] variablesTester si un fichier existe...
Spprimer une ligne dans un fichierLancement fichier DOS
Plus de sujets relatifs à : [batch dos RESOLU] lire nombre dans fichier et l'exploiter pour calcul


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR