Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Mariomagauf en 2 Diciembre 2011, 11:13 AM

Título: REDONDEAR CIFRA EN VBS Y VOLCARLA EN UNA VARIABLE EN BATCH
Publicado por: Mariomagauf en 2 Diciembre 2011, 11:13 AM
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?
Título: Re: REDONDEAR CIFRA EN VBS Y VOLCARLA EN UNA VARIABLE EN BATCH
Publicado por: Eleкtro en 2 Diciembre 2011, 12:35 PM
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!
Título: Re: REDONDEAR CIFRA EN VBS Y VOLCARLA EN UNA VARIABLE EN BATCH
Publicado por: Novlucker en 2 Diciembre 2011, 12:43 PM
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