Ms-Dos - verificador de valores

 
Vista:
sin imagen de perfil

verificador de valores

Publicado por Gastón (1 intervención) el 27/10/2014 20:33:53
Estimados,
Necesito hacer un BAT para el trabajo, que recorra un archivo de texto plano y en determinadas lineas tome valores y que luego los pueda utilizar para realizar una funcion. El archivo contiene el siguiente texto:

TpoMoneda: UYU
TipoCambio: 1.000
MntNoGrv: 0.00
MntExpoyAsim: 0.00
MntImpuestoPerc: 0.00
MntIVAenSusp: 0.00
MntNetoIVAtasaMin: 0.00
MntNetoIVATasaBasica: 630.00
MntNetoIVAOtra: 0.00
IVAtasamin: 10.00
IVATasaBasica: 22.00
MntIVATasaMin: 0.00
MntIVATasaBasica: 138.60
MntivaOtra: 0.00
MntTotal: 769.00
MntTotRetenido: 0.00
CantLinDet: 3
RetenPercep:
CodRet ValRetPerc:

MontoNF: 0.00
MntPagar: 769.00

y las cuentas que tengo que hacer son las siguientes:

"MntNetoIVAtasaMin"*"IVAtasamin"/100 = MntIVATasaMin
"MntNetoIVATasaBasica"*"IVATasaBasica"/100 = MntIVATasaBasica
"MntNetoIVAtasaMin"+"MntNetoIVATasaBasica"+"MntNetoIVAOtra"+"IVAtasamin"+"IVATasaBasica"+"MntivaOtra" = MntTotal
"MntTotal"+"MontoNF" = MntPagar

Lo que pensaba hacer era guardar los valores a usar en archivos externos haciando algo como

type "archivo.txt" | find "codigo_guardar" > temp.txt

Y así con todos los valores. Luego con findstr /v quitar el nombre de codigo y dejar solo el valor, pero me tranque al primer intento por no poder editar ni reemplazar el texto del temp.txt

PD: No soy buen un programador, pero me gusta aprender y salir adelante. Si me pueden tirar algun pique o ayuda para sacar esto se agradece mucho!

salu2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de A.H.H

verificador de valores

Publicado por A.H.H (216 intervenciones) el 29/10/2014 21:39:48
Hola con una simple línea de FOR creamos las variables con el mismo nombre que tienen en el texto y metemos dentro el valor que también tiene en el texto.

ejemplo: creamos la variable %TipoCambio% y le introducimos dentro 1000

SI partimos de la base que tenemos un archivo de texto llamado archivo.txt con el texto que mencionaste arriba en tu post esta seria la línea del for que hace ese milagro.

1
FOR /F "tokens=1,2 delims=:" %%i in (archivo.txt) do SET %%i=%%j

recorremos con el for todo el archivo y separamos por el delimitador (de los dos puntos :) las dos palabras o ítems
en este caso la palabra y por otro lado la cantidad y hacemos que cree la variable de la palabra (%%i) y meta dentro la cantidad o sea %%j


Después ya solo hay que hacer las operaciones con SET /a que la opción /a es para operaciones aritméticas.

algo asi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@ECHO OFF
FOR /F "tokens=1,2 delims=:" %%i in (Nuevo.txt) do SET %%i=%%j
set /a MntIVATasaMin=MntNetoIVAtasaMin * IVAtasamin/100
set /a MntIVATasaBasica=MntNetoIVATasaBasica * IVATasaBasica/100
set /a MntTotal=MntNetoIVAtasaMin + MntNetoIVATasaBasica + MntNetoIVAOtra + IVAtasamin + IVATasaBasica + MntivaOtra
set /a MntPagar=MntTotal + MontoNF
 
 
echo ntIVATasaMin = %MntIVATasaMin%
echo MntIVATasaBasica = %MntIVATasaBasica%
echo MntTotal =  %MntTotal%
echo MntPagar = %MntPagar%
 
 
pause
exit


NOTA:

ES UN EJEMPLO COMPRUEBA BIEN LAS OPERACIONES...............PUEDO HABERME EQUIVOCADO....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar