Soustraction de nombres dans un fichier txt (batch)
Résolu
NkRedoxx
Messages postés
75
Statut
Membre
-
NkRedoxx Messages postés 75 Statut Membre -
NkRedoxx Messages postés 75 Statut Membre -
Bonjour, j'ai un fichier .txt qui reçoit des valeurs par rapport à un script à la suite j'aimerais savoir si c'est possible de créer un autre script capable de soustraire la première valeur avec la deuxième, la troisieme avec la quatrieme , la 5eme par la 6ème et ainsi de suite et renvoie a chaque fois le résultat dans un fichier excel avec la date et l'heure sachant qu'il ne faut pas à chaque fois supprimer les valeurs il faut les garder
voici un exemple de mon fichier txt :
4 982 701 020"
4 884 062 208"
4 982 701 052"
4 884 062 208"
4 982 701 084"
4 884 062 208"
voici ce que j'aimerais que cela rende c'est un exemple:
Le 14/06/2016 à 16h50 :
98638812
Le 15/06/2016 à 15h30 :
98638844 ........etc
Merci à vous,
voici un exemple de mon fichier txt :
4 982 701 020"
4 884 062 208"
4 982 701 052"
4 884 062 208"
4 982 701 084"
4 884 062 208"
voici ce que j'aimerais que cela rende c'est un exemple:
Le 14/06/2016 à 16h50 :
98638812
Le 15/06/2016 à 15h30 :
98638844 ........etc
Merci à vous,
1 réponse
Résumé de la discussion
Le problème central est de concevoir un script capable de soustraire les valeurs par paires dans un fichier texte et d’enregistrer les résultats dans un fichier Excel avec date et heure. Des échanges évoquent l’utilisation d’AWK ou de commandes DOS, les limites liées aux grands nombres et à la précision 32 bits, et la possibilité d’employer une macro Excel ou un autre outil. Plusieurs solutions visent à nettoyer les valeurs en retirant espaces et guillemets et à effectuer les soustractions, mais des difficultés persistent comme l’emplacement des fichiers. En cas d’échec avec DOS/AWK, l’emploi d’un outil dédié, comme une macro Excel ou un script Python, peut simplifier la gestion des dates et de l’écriture dans Excel.
-
hello
DOS ne peut pas traiter des grands nombres, il faut envisager un autre outilC:> set /a x=4982701020-4884062208
Nombre non valide. Les nombres sont limités à une précision de 32 bits-
-
powershell, vbs que je ne connais pas
sinon awk, commande Unix, pour DOSC:> awk "BEGIN {print 4982701020-4884062208}"
98638812
http://gnuwin32.sourceforge.net/packages/gawk.htm -
j'ai crée un troisième script dans lequel j'ai inscris tout ça et installer gawk :
@echo off
echo.
echo.
echo.>d:\script\awk.exe
awk "BEGIN {print 4982701020-4884062208}"
Mais awk n'est pas reconnu en tant que commande interne pourtant je viens de rajouter le chemin PATH !
Le deuxième problème étant que les chiffres présent dans le fichier txt ne seront a chaque fois pas les mêmes en fait ce ne sera pas à chaque fois 4982701020-4884062208 qu'il faudra effectué -
mettre le chemin devant : \chemin\awk ...
il faut du code awk pour faire ce qu'on veutC:> awk -f code.awk fichier.txt
98638812
98638844
98638876
C:> type code.awk
{gsub("[ \"]", "")} ## on supprime espaces et "
NR%2 {a=$0; next} ## on stocke les lignes impaires dans la variable a
{print a-$0} ## on soustrait la ligne courante avec la ligne précédente -
-