C/Visual C - Sobre la entrada estandar

 
Vista:

Sobre la entrada estandar

Publicado por Joselillo (3 intervenciones) el 29/01/2004 19:38:17
hola!, queria saber si alguien me podia dar alguna idea para hacer lo siguiente, mi programa se ejecuta desde la linea de ordenes, de la siguiente manera:
ejecutable [opcion] nombre de archivo.
Bien tengo que hacer una serie de cosas con ese archivo, otra posibilidad del programa es procesar la entrada estandar, es decir que en vez de un nombre de archivo puedo poner cualquier secuencia de palabras, mi pregunta es ¿como puedo saber si lo que estoy procesando es un archivo o una secuencia de palabras?se me habia ocurrido una opcion algo chapucera, con la funcion fopen() intentar abrir el archivo y si me da un error es porque no se trata de un archivo sino de palabras en la linea de ordenes, no tengo garantias de que se pueda hacer asi porque aun no lo he probadoy aun asi lo dudo que funcione. Asi que esa era mi cuestion si alguien me podria dar alguna idea o decir alguna funcion que compruebe si lo que tengo en la linea de ordenes es un archivo(de cualquier tipo) o una secuencia de palabras. 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:Sobre la entrada estandar

Publicado por Nicolas (183 intervenciones) el 29/01/2004 22:08:33
Lo que se me ocurre en este momento es que limites tu aplicacion a que en caso de pasar por linea de comando un archivo, solo pueda ser leido si el mismo se encuantra tipeado con extension, por lo que podrias checkear la linea leida hasta encontrar un punto (".") y ver si la extension correspondiente es una que el programa esta capacitado para abrir.
Tu idea podria llegar a tirar un error en tiempo de ejecucion en caso de intentar abrir un archivo inexistente.

Por lo tanto la idea q se me ocurre es algo asi como desarrollar una especie de "protocolo" a la hora de recibir ordenes por linea de comandos.

Espero que te sirva.
Salu2!!!!!!!
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:Sobre la entrada estandar

Publicado por chuidiang (677 intervenciones) el 30/01/2004 09:11:40
No entiendo muy bien el problema.

Si quieres procesar un archivo o palabras en la misma linea de comandos, la opción más habitual es hacer una opción que diga que lo que hay detrás es un fichero. Por ejemplo, el comando puede hacer esto
$ comando -f fichero
o bien
$ comando palabra

Si lo que quieres es procesar la entrada standard, es decir
$ comando <intro>
se ejecuta tu programa y con scanf() o getch() empieza a pedirte las palabras, lo que puedes hacer es algo como esto

main (int argc, char **argv)
{
FILE *fichero;
if (<hay_fichero>)
fichero = open (...);
else
fichero = stdin;

<resto del codigo, leyendo de fichero>
}

No se muy bien cual de las dos es la que quieres

Se bueno.

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