Este es, pues, un programa ejemplo de uso de la función windir.
A la función se le pasa la máscara a buscar y la función presenta los ficheros que encajen con la máscara, permitiendo seleccionar un fichero.
Cuando se sale de windir, si se seleccionó un fichero, este se almacena en el buffer indicado en el parámetro file, y por lo tanto, lo podemos imprimir en pantalla.
En este programa se usa la librería argum, de forma que podemos dar la máscara de búsqueda a través de la línea de comandos al llamar al ejecutable. Ejm wdir_ej *.exe
La máscara indicada en la línea de comandos será usada como máscara de búsqueda en windir. Si no indicamos nada se busca *.*.
Este programa es pues el primero que pongo con recogida de datos de la línea de comandos.
WDIR_EJ.ASM
; Copyright (C) 2013 José Ángel Moneo Fernández ; This program is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; You should have received a copy of the GNU General Public License ; along with this program. If not, see <http://www.gnu.org/licenses/>.
include main.mac
include stdio.mac
include window.mac
include argum.mac
.model compact,pascal
.stack 200
.data
files db "*.*",0
file db 20 dup (0)
retor db 10,13,0
.code
p proc far
main ;inicializa programa
argc dl ; comprueba si hay argumentos en la línea de comandos
cmp dl,0
jne seguir
mov si,offset files
jmp presenta
seguir:
argv 1,si ;recoje el primer argumento
presenta:
windir 5,20,[si],file ; llama a la función de directorio indicándole la máscara
printf retor ;Imprimer un return
printf file ; imprime el fichero
ret
p endp
end p
No hay comentarios:
Publicar un comentario
Si tienes algún comentario, duda o sugerencia, o si quieres aportar algún código creado a partir de las librerías expuestas aquí, por favor, indícamelo.