La Web del Programador: Comunidad de Programadores
 
    Pregunta:  13598 - ¿CÓMO SABER SI UN ARCHIVO EXISTE DESDE VISUALFOXPRO?
Autor:  Nora González Cárdenas
Hola! Mi programa tiene una opción de convertir una tabla de foxpro a una hoja de cálculo de excel, eso sí lo hace, pero quiero saber qué condición le puedo poner antes para que valide si de verdad existe esa tabla de foxpro que quiero convertir, o sea:

¿existe la tabla?
si sí entonces
conviértela a excel
si no manda un mensaje de error

pero no sé que condición pueda ser para verificar si existe en el subdirectorio correspondiente.

Gracias!

  Respuesta:  AGUSTIN NUNCIO
usa la funcion FILE()

Tabla = mitabla.dbf
if FILE(&tabla)
convierte
else
mensaje error
endif

  Respuesta:  Richard Silva M.
Hola Nora:

Prueba con el comando File, con el cual determinas si existe un archivo en disco. En tu caso sería algo así:

If File(lcTabla)
SendToExcel()
Else
=Messagebox('La tabla no existe.',16,' Error !!')
EndIf

Donde lcTabla representa la tabla que vas a convertir. Asegúrate de incluir las extensiones adecuadas en el archivo buscado. Consulta la ayuda en el comando File para obtener información acerca de PATH.

Saludos desde Venezuela...

  Respuesta:  Douglas Cruz Coto Alvarenga
Nora, no se si entendi mal pero si lo que necesitas es preguntar por la existencia física de un archivo dentro de un directorio, solo debes utilizar la funcion de fox como en el ejemplo.

IF FILE("CUALQUIER.DBF")
** Entonces copiar a excel
Else
** Archivo no existe
ENDIF

Si la tabla la tienes en un directorio especifico, especifica la ruta correspondiente y listo.

Espero te sirva mi colaboración.

  Respuesta:  wences
Lo mejor que puedes hacer es crear un control de errores (on error) y con algo parecido a esto pero en lugar de crearlo sacas un mensaje ...

esto en el programa :

if !used(m.nomes)
use &nombre2 in 57 shared
endif
select &nomes

esto en el control de errores:

case gnerror=1 and gcprog='CONFIRMA.BOTONES.CONFIRMAR.CLICK' and gnlineno=11
** Creamos Historico de Facturas
select lineasf
copy structure to '.\historia\'+m.nomes with cdx
use '.\historia\'+m.nomes in 57 shared

gnerror es el codigo de error ... gcprog es donde lo da , gnlineno la linea ..

Echale un ojo al on error y algun ejemplo que aparece ....
Espero te sirva ...