Multiplier la valeur d'un champ
Résolu
DelNC
Messages postés
2360
Statut
Membre
-
DelNC Messages postés 2360 Statut Membre -
DelNC Messages postés 2360 Statut Membre -
Bonjour à tous et toute,
Désolée de vous déranger de nouveau, mais je tourne en rond depuis 2 jours.
Voilà, dans un fichier texte, je dois diviserle contenue d'une de mes colonnes par 3.
Voilà un morceau du document texte.
T0047;Tuyau 1m;Marque2;jardinage;75;promo
T00747;Tuyau 1m;Marque2;jardinage;30;promo
et je veux avoir
R123;Rateau;Marque1;jardinage;25;promo
R123;Rateau;Marque1;jardinage;10;promo
Pour l'instant j'ai ce code là.
Je vous remercie d'avance pour l'aide que vous m'apporterez.
Bonnes fêtes à tous.
Désolée de vous déranger de nouveau, mais je tourne en rond depuis 2 jours.
Voilà, dans un fichier texte, je dois diviserle contenue d'une de mes colonnes par 3.
Voilà un morceau du document texte.
T0047;Tuyau 1m;Marque2;jardinage;75;promo
T00747;Tuyau 1m;Marque2;jardinage;30;promo
et je veux avoir
R123;Rateau;Marque1;jardinage;25;promo
R123;Rateau;Marque1;jardinage;10;promo
Pour l'instant j'ai ce code là.
set /a prix=%prix%/3
::je vais à la colonne 5 où ma valeur se situe (après le quatrième ;)
for /F "delims=; tokens=4*" %%a in (articles.txt) do (
set a=%%a
set a=!a:/0.6=!
::là je récupère les éléments avant ma colonne 5
::je mets la nouvelle valeur
::je mets le reste de ma ligne
echo %%a;%prix%;%%b
echo %%a;%prix%;%%b >>resultat2.txt
)
Je vous remercie d'avance pour l'aide que vous m'apporterez.
Bonnes fêtes à tous.
A voir également:
- Multiplier la valeur d'un champ
- Signe multiplier clavier iphone ✓ - Forum Clavier
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- System memory multiplier - Forum Matériel & Système
- Formule excel si contient texte alors valeur ✓ - Forum Excel
- Valeur ascii - Guide
2 réponses
hello
C:> type f1.txt
T0047;Tuyau 1m;Marque2;jardinage;75;promo
T00747;Tuyau 1m;Marque2;jardinage;30;promo
C:> cc
T0047;Tuyau 1m;Marque2;jardinage;25;promo
T00747;Tuyau 1m;Marque2;jardinage;10;promo
C:> type cc.bat
@echo off
setlocal enabledelayedexpansion
for /F "delims=; tokens=1-6" %%a in (f1.txt) do (
set a=%%e
set /a a=!a!/3
echo %%a;%%b;%%c;%%d;!a!;%%f
)
Hello
Les points posaient problèmes, solution choisie c'est dans la colonne e par de points ni d'espace
::partie du script qui retire tous les guillemets
::partie du script qui retire tous les espace dans la colonne PUMP
:: s il y a des espaces on ne peut pas realiser la multiplication
:: on ne peut pas diviser par 0.6 donc on multiplie par 1666 puis divise par 1000
Les points posaient problèmes, solution choisie c'est dans la colonne e par de points ni d'espace
::partie du script qui retire tous les guillemets
@echo off
setlocal enabledelayedexpansion
for /F "delims=" %%a in (articles.txt) do (
set a=%%a
set a=!a:"=!
echo !a!
echo !a! >>resultat.txt
)
::partie du script qui retire tous les espace dans la colonne PUMP
:: s il y a des espaces on ne peut pas realiser la multiplication
@echo off
setlocal enabledelayedexpansion
for /F "delims=; tokens=1-8" %%a in (resultat.txt) do (
set a=%%e
set a=!a: =!
echo %%a;%%b;%%c;%%d;!a!;%%f;%%h;%%g
echo %%a;%%b;%%c;%%d;!a!;%%f;%%h;%%g >>resultat2.txt
)
:: on ne peut pas diviser par 0.6 donc on multiplie par 1666 puis divise par 1000
@echo off
setlocal enabledelayedexpansion
for /F "delims=; tokens=1-8" %%a in (resultat2.txt) do (
set a=%%e
:: set /a a=!a!/0.6
set /a a=!a!*16666/10000
echo %%a;%%b;%%c;%%d;!a!;%%f;%%h;%%g
echo %%a;%%b;%%c;%%d;!a!;%%f;%%h;%%g >>resultat3.txt
)
Dis moi quel est ton secret pour réussir à faire tes scripts aussi rapidement.
Tu aurais des pages internet à me conseiller ?
Sinon je n'y arriverais jamais toute seule.
Encore merci et passe de bonnes fêtes
:-)
là, il y a pleins d'exemples
http://www.hotline-pc.org/batch.htm
Bonne année !!
J'ai un soucis, pour la valeur à diviser.
Ca m'affiche au résultat que les premiers chiffres
exemple au départ c'est
T00747;Tuyau 1m;Marque2;jardinage;7150;promo
au final
T00747;Tuyau 1m;Marque2;jardinage;7;promo
J'essaye de voir d'où peut venir le problème
@+