REDONDEAR CIFRA EN VBS Y VOLCARLA EN UNA VARIABLE EN BATCH

Iniciado por Mariomagauf, 2 Diciembre 2011, 11:13 AM

0 Miembros y 1 Visitante están viendo este tema.

Mariomagauf

Hola:
Estoy construyendo un programa de música (usando NIRCMD desde BATCH) y para poder fijar una nota tomo como constante el valor de la Nota SOL=49 (49 Hz). Para saber el semitono por encima o debajo necesito calcular lo siguiente:

                             Semitono por encima=Tono base * (2^(1/12))


Si es Bemol (semitono por debajo)

                            Semitono por debajo=Tono Base / (2^(1/12))

Como en Batch no lo puedo hacer, habría que hacer esas operaciones en VBS y enviarlas a un Fichero TXT que sería leido por el BATCH volcandolo en una variable que será la nota  ejecutada por el NIRCMD.
Por supuesto el valor obtenido debe de ser redondeado por encima para poder usarse.
¿Alguien puede ayudarme?

Eleкtro

No te puedo ayudar con lo primero, Nunca he echo matemáticas en VBS, Aunque si leyeras este tutorial de NovLucker... ahí ves ejemplos con los operadores.

http://foro.elhacker.net/scripting/tutorial_vbscript-t229032.0.html

Sobre la variable, te hago la mitad del code VBS.

Código (vb) [Seleccionar]
"(OPERACIÓN)"
wscript.quit("VARIABLE QUE CONTIENE EL NÚMERO RESULTADO DE LA OPERACIÓN")
end if


Luego en batch solo tendrías que usar %ERRORLEVEL% Para mostrar el valor que dió el VBS.

Ejemplo:
Código (dos) [Seleccionar]

@echo off
wscript elvbs.vbs
Echo %ERRORLEVEL%
Pause >nul


Creo que debería funcionar

Saludos!








Novlucker

Para redondear ...
Código (vb) [Seleccionar]
valor = 55.66674
msgbox round(valor,2)
'redondeado el valor a 2 decimales


El resto de las operaciones es igual

Saludos

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein