Hola invitado         02 Sep, 2010 - 04:45
Menú principal
 
Ads
 
Patrocinadores
 
Anuncios
 
© 2009 PortalFox
Búsquedas de archivos y texto con Filer.dll lecturas 2765
 Enviado por LuisMaria en Miércoles, 16 Abril, 2008
General 

El componente Filer.dll que se incluye desde las primeras versiones de Visual FoxPro nos brinda un motor de búsqueda de archivos y de texto.


Búsquedas de archivos y texto con Filer.dll


Este componente DLL no tiene una interfaz de usuario. Se puede crear una instancia del objeto Filer en un programa, y buscar archivos y textos sin la intervención del usuario.

Una vez instanciado, se especifican las condiciones de búsqueda de archivos y/o texto, y se ejecuta el método Find(). Este método retorna un objeto colección con sus propiedades, que permiten obtener información de los archivos que cumplen las condiciones de la búsqueda; y métodos que permiten editar o eliminar estos archivos.

Ejemplos

1. Búsqueda del archivo "Customer.dbf":

LOCAL loFiler AS 'Filer.FileUtil'

*-- Creo el objeto
loFiler = CREATEOBJECT('Filer.FileUtil')
*-- Indico la ruta
loFiler.SearchPath = HOME(1)
*-- Indico el archivo o mascara (Ej: *.dbf)
loFiler.FileExpression = 'Customer.dbf'
*-- Indico que busque en subcarpetas
loFiler.SubFolder = 1
*-- Busco...
loFiler.Find(0)

IF loFiler.Files.Count > 0
  ? TRANSFORM(loFiler.Files.Count) + ' archivo/s encontrado/s'
  ?
  FOR lnCant = 1 TO loFiler.Files.Count
    WITH loFiler.Files.Item(lnCant)
      ? 'Archivo ' + TRANSFORM(lnCant)
      ? 'Ruta: ' + .Path
      ? 'Nombre: ' + .Name
      ? 'Tamaño: ' + TRANSFORM(.Size)
      ? 'Creado: ' + TRANSFORM(DATETIME(1899,12,30) + .DateTime * 86400)
      ? 'Modificado: ' + TRANSFORM(DATETIME(1899,12,30) + .LastWriteTime * 86400)
      ? 'Ultimo acceso: ' + TRANSFORM(DATETIME(1899,12,30) + .LastAccessTime * 86400)
      ?
    ENDWITH
  ENDFOR
ELSE
  ? 'El archivo no se encontró.'
ENDIF
loFiler = NULL

2. Búsqueda del texto "Microsoft" en archivos "*.TXT":

LOCAL loFiler AS 'Filer.FileUtil'

*-- Creo el objeto
loFiler = CREATEOBJECT('Filer.FileUtil')
*-- Indico la ruta
loFiler.SearchPath = HOME(1)
*-- Indico el archivo o mascara (Ej: *.dbf)
loFiler.FileExpression = '*.TXT'
*-- Indico que NO busque en subcarpetas
loFiler.SubFolder = 0
*-- Indico el texto a buscar
loFiler.SearchText1 = "Microsoft"
*-- Busco...
loFiler.Find(0)

IF loFiler.Files.Count > 0
  FOR lnCant = 1 TO loFiler.Files.Count
   *-- Edito el archivo
   loFiler.Files.Item(lnCant).Edit
  ENDFOR
ELSE
  MESSAGEBOX('No se encontró el texto en ningún archivo.',64,'Aviso')
ENDIF
loFiler = NULL

Notas adicionales

1. Visual FoxPro incluye un formulario de ejemplo, donde se muestra una interfaz de usuario para Filer.dll. Para ver este formulario, ejecute:

DO FORM (HOME(1) + 'Tools\Filer\Filer.scx')

Al ejecutar el formulario Filer.scx se agrega el elemento Filer al menú de Herramientas (Tools) de Visual FoxPro, que permanece por toda la sesión de VFP.

2. Las propiedades de fechas y horas (DateTime, LastWriteTime y LastAccessTime), retornan un valor numérico, donde la parte entera es la cantidad de días transcurridos desde el 30 de diciembre de 1899; y la parte fraccionaria es la fracción del día que determina la hora.

3. Todos los archivos que se encuentran en la carpeta \Tools\Filer del directorio de instalación de Visual FoxPro pueden ser distribuidos con nuestras aplicaciones.

4. Puede ver información mas detallada de todas las propiedades y métodos del objeto Filer, en la ayuda de VFP, bajo el tema Filer.dll.


 Versión imprimible  
Búsquedas de archivos y texto con Filer.dll | Entrar/Crear una cuenta | 3 Comentarios
Los comentarios son propiedad de sus respectivos autores.
No somos responsables de su contenido.

Re: Búsquedas de archivos y texto con Filer.dll


por cchalom en 17 Abr, 2008 - 10:15
(Información del usuario  | Enviar un mensaje http://weblogs.foxite.com/cesarchalom)
Excelente !
Muchas gracias por compartir este.
No sé cómo he perdido este atractivo instrumento de tanto tiempo.

Re: Búsquedas de archivos y texto con Filer.dll


por kos en 05 May, 2008 - 12:32
(Información del usuario  | Enviar un mensaje 
Hola,yo ya conocía un poco las utilidades de filer pero me he encontrado con una dificultad de cara a su uso sobre todo en el campo profesional y os lo comento por si ha sido un error mio o si conoceis alguna solución práctica.
El tema es que si usamos la clase filer y creamos instancias de la misma nos pide que el pc en el que se esta ejecutando tenga registrada la dll "filer.dll" lo cual a la hora de añadir funcionalidades a aplicaciones nos obligaría a instalar la dll equipo a equipo. Hay alguna solución a esto que no sea dejar de lado Filer y emplear ADIR y funciones similares???
gracias y un saludo




Todas las marcas y los logos utilizados en este sitio son propiedad de sus respectivos dueños.
Los artículos, noticias y comentarios son propiedad y responsabilidad de sus respectivos autores.
Copyright © 2000-2010 PortalFox. Todos los derechos reservados.