Talk:Input/Output for lines of text: Difference between revisions
Content added Content deleted
mNo edit summary |
mNo edit summary |
||
Line 27: | Line 27: | ||
warning: I need the number of lines to enter! |
warning: I need the number of lines to enter! |
||
Se me ocurren, al menos, 3 métodos para realizar esta tarea: |
|||
⚫ | |||
1) Usando un archivo (¿creado con atributo "hidden"?), donde la primera línea sea el número ingresado: el resto de las líneas del archivo, son las ingresadas a través del STDIN (con eco en la pantalla). Si el archivo existe, se puede comprobar el número, y contar las líneas ya registradas, para determinar si existe "overflow"; si no existe "overflow", guardar la línea en el archivo, e imprimir la línea en la pantalla. Cuando se alcanzó el total de líneas, se borra el archivo, y se pide que ingrese un número. |
|||
2) Se puede usar el sistema de mensajería, en SO Linux, y hacer algo semejante a lo indicado en el punto 1. |
|||
3) Este método sirve para aquellos programas que son interpretados por alguna máquina virtual. Todos los programas "ejecutables" de esta clase, tienen una estructura conocida: |
|||
a) Se puede abrir el programa en modo "BINARIO". |
|||
b) Localizar la dirección donde se guarda el valor que inicializa el contador de líneas. |
|||
c) si dicho valor es "0" (ASCII 48), guardar, en el lugar del "0", el número que entró a través del STDIN, en formato ASCII. Por supuesto, hay que verificar que lo ingresado sea un número. |
|||
d) si dicho valor no es "0", se asumirá que lo ingresado, sea lo que sea, es una de las líneas esperadas: |
|||
d.1) imprimir la línea. |
|||
d.2) decrementar el valor del contador, y guardarlo en la posición exacta, dentro del programa. |
|||
d.3) cerrar el archivo de tu programa, y terminar la ejecución del programa. |
|||
e) si el contador es "0", y se ingresó algo distinto de un número, o bien mandar un mensaje warning, o no hacer nada. |
|||
f) si el contador es "0", y se ingresó un número, volver al paso a). |
|||
⚫ |