FoxPro/Visual FoxPro - Capturar lista Tablas

 
Vista:

Capturar lista Tablas

Publicado por Ricardo (1 intervención) el 31/10/2005 16:46:21
Quiero efectuar la captura de todas las tablas *.dbf de un directorio incluidos subdirectorios y guardar esa lista en otra nueva tabla...
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:Capturar lista Tablas

Publicado por LAP (26 intervenciones) el 31/10/2005 18:56:15
Hola, tienes que usar recursividad. Copiate el código de esta función. Esta función tiene más funcionalidades pero las he quitado (ya que no vienen al caso que tu pretendes). Espero no haber borrado demasiado y que no funcione.

Function _RecorrerDir
* Recorre la estructura de directorios que se le indique (incluidos los subdirectorios) y los almacena en un vector.

* Parametros:
* m.sRuta=La ruta desde la cual se quiere empezar a recorrer la estructura.
* m.sTiposArch=Una cadena con las extensiones de los archivos que se quieren procesar.

* Devuelve: Un vector con la estructura de directorios, subdirectorios y los ficheros que se quieren procesar.
* Por ahora el vector es publico.

Lparameters m.sRuta,m.sTiposArch

* Almacena los sucesivos directorios que se van obteniendo recursivamente.
Local array m.aMatriz[1]

* Contadores.
Local i,n

* Cargar los directorios de la ruta seleccionada en una matriz.
n=ADir(m.aMatriz,m.sRuta+"\*.*","D")

* Recorremos los directorios.
For i=1 to n
* Descartamos los directorios padre (..) y el mismo (.).
If m.aMatriz[i,1] != "." and m.aMatriz[i,1] != ".."
* Comprobar si el fichero obtenido se incluye en la copia según configuración.
If InList(JustExt(m.aMatriz[i,1]),&sTiposArch.)
* Si es el primer fichero (primer elemento del vector logico).
If Vartype(aEstrucDirArch[1])="L"
* La matriz publica.
aEstrucDirArch[1]=m.sRuta+"\"+m.aMatriz[i,1]
Else
* Redimensionamos y guardamos el directorio obtenido en el vector publico.
Dimension aEstrucDirArch[Alen(aEstrucDirArch,1)+1]
aEstrucDirArch[Alen(aEstrucDirArch,1)]=m.sRuta+"\"+m.aMatriz[i,1]
EndIf
* Mensaje del fichero en proceso.
Wait m.sRuta+"\"+m.aMatriz[i,1] window nowait
EndIf
* Llamada de la función a si misma (recursividad).
This._RecorrerDir(m.sRuta+"\"+m.aMatriz[i,1],m.sTiposArch,m.sNombreFormLlamada)
EndIf
EndFor

EndFunc
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:Capturar lista Tablas

Publicado por jerry (1 intervención) el 31/12/2015 00:32:18
No funciona,
Tiene un punto '.' de mas en la linea "If InList(JustExt(m.aMatriz[i,1]),&sTiposArch.) "
Y falta el "aEstrucDirArch"
Gracias.
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