Ms-Dos - ¿Cómo ejecutar un .exe con parámetro entero?

 
Vista:

¿Cómo ejecutar un .exe con parámetro entero?

Publicado por frandelbetis (2 intervenciones) el 19/08/2010 13:30:21
Hola,
tengo una aplicación que recibe como parámetros un entero. Lo ejecuto en MSDOS de esta forma:
>extraerFotogramas 2

El problema es que ese 2 lo reconoce como cadena, y no realiza bien su tarea. En el algoritmo de la aplicación tengo que hacer que la cadena que le llega la convierta en entero, pero me gustaría pasarle el argumento directamente desde MSDOS especificando que es un entero, ¿es posible esto?

Gracias, un saludo.
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

RE:¿Cómo ejecutar un .exe con parámetro entero?

Publicado por Armando Nava  (194 intervenciones) el 20/08/2010 03:38:51
Es mejor modificar el programa para especificarle que la entrada sea de tipo entero como tu la quieres.

char t;
int uno;
float dec;

printf("Escriba un entero: ");
scanf(%i, &uno);
printf("Escriba su nombre: "); /*No tengo el compilador pero debería marcar error*/
scanf(%f, &dec);

Si se hace una asignación distinta del tipo esperado puede suceder un error.

En principio se podria especificar que la entrada sea reconocida como entero, pero tendrias que hacer una rutina en tu programa, por ejemplo si se escribe 2i que lo reconozca como entero, 45o como octal, 23x como exadecimal, etc, etc. Primero tendrias que usar un array, verificar hasta donde son numeros, y luego leer la letra y en funcion de esto aplicar un case para definir si es entero, flotante, cadena, etc.

La funcon en C para convertir un caracter a entero se llama atoi();
http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
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

RE:¿Cómo ejecutar un .exe con parámetro entero?

Publicado por frandelbetis (2 intervenciones) el 20/08/2010 12:02:09
Entonces tu también piensas que la solución en modificar el programa. No se, me resulta extraño que no haya forma de especificar un argumento como entero cuando llamas a un ejecutable desde MSDOS.
Por cierto mi programa es en Matlab, pero eso no tiene que ver para el problema que estoy planteando.
Si alguien tiene otra sugerencia será bien recibida.
Gracias Armando,
un saludo.
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

RE:¿Cómo ejecutar un .exe con parámetro entero?

Publicado por Armando Nava (194 intervenciones) el 20/08/2010 16:37:39
A los ejecutables solo les pasas el parámetro y listo, la manera de como lo interpreten o usen, depende del programa.

Puede que en este manual encuentres respuesta:

http://proton.ucting.udg.mx/tutorial/matlab/matlab61pro.pdf
----------------------------------------------------------------------------
La función input permite imprimir un mensaje en la línea de comandos de MATLAB y recuperar
como valor de retorno un valor numérico o el resultado de una expresión tecleada por el usuario.
Después de imprimir el mensaje, el programa espera que el usuario teclee el valor numérico o la
expresión. Cualquier expresión válida de MATLAB es aceptada por este comando. El usuario
puede teclear simplemente un vector o una matriz. En cualquier caso, la expresión introducida es
evaluada con los valores actuales de las variables de MATLAB y el resultado se devuelve como
valor de retorno. Véase un ejemplo de uso de esta función:
>> n = input('Teclee el número de ecuaciones')
Otra posible forma de esta función es la siguiente (obsérvese el parámetro 's'):
>> nombre = input('¿Cómo te llamas?','s')
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que se
almacena en la cadena nombre. Así pues, en este caso, si se teclea una fórmula, se almacena como
texto sin evaluarse.
---------------------------------------------------------------------------
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

RE:¿Cómo ejecutar un .exe con parámetro entero?

Publicado por Armando Navau (194 intervenciones) el 20/08/2010 17:21:01
-----------------------------------------------------------------------
Matlab cuenta con una enorme biblioteca de funciones matemáticas. Su utilidad depende directamente del conocimiento que tengamos de ellas. Mientras intuitivamente ya hemos usado las funciones trigonométricas sin y cos, muchas de las presentes en la colección ni nos sonarán. Cumple el objetivo principal de ahorrarnos tener que escribir cualquier función mínimamente conocida. El nombre que reciben estas funciones suele ser bastante descriptivo; la función Γ se llamará gamma y las funciones de Airy se llamarán airy.

Estas funciones no son archivos .m, se escriben en un lenguaje compilado como C++ o Fortran para que su velocidad sea mayor. No debemos tener miedo a usarlas tanto como sea posible.
------------------------------------------------------------------------

Puedo hacer un programa como el siguiente

-----------------------------------------------------------------------
int main(int argc, char *argv[])
{
if (argc != 3)
cout << "faltan parametros: programa entero1 entero2\n"; //Mi programa espera dos parámetros
else
{
int a,b, SUMA; //Todas mis variables son del tipo entero
a = atoi(argv[1]);
b = atoi(argv[2]);
MCD = a+b;
cout << a << "+" << b << " = " << SUMA << endl;
}
return 0;
}
-----------------------------------------------------------------------
Pero soy yo el que define que tipos de datos espera mi programa, es este caso enteros, pero puedo manejar otros tipos,


El problema seria tratar las variables que te arrojen los .exe, no he manejado matlab, pero talvez:
respuesta=abs(TU_EXE(4))

O si direccionas a un archivo y después lo lees.

No se tendría que ver el error que te manda igual y no le estas pasando bien los parámetros, o le faltan, etc
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

RE:¿Cómo ejecutar un .exe con parámetro entero?

Publicado por Armando Nava (194 intervenciones) el 20/08/2010 17:42:55
Mira este link.

http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/093f883e-b7ca-4f88-a1bf-9462a3f55e2a
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