voidtools

Clarion




Setup

Descargue el módulo Clarion: Clarion_Everything.zip

El código fuente del módulo está incluido.

Extraiga Everything.lib en su proyecto clarion.

Añada LIB en "Archivos de biblioteca, objeto y recursos" en su proyecto Clarion y ponga lo siguiente en su mapa global.

MODULE('Everything.lib')
  Everything_GetLastError(),LONG,RAW,PASCAL
  Everything_SetSearch(*CSTRING),RAW,PASCAL
  Everything_SetMatchPath(LONG),RAW,PASCAL
  Everything_SetMatchCase(LONG),RAW,PASCAL
  Everything_SetMatchWholeWord(LONG),RAW,PASCAL
  Everything_EnableRegex(LONG),RAW,PASCAL
  Everything_SetMax(LONG),RAW,PASCAL
  Everything_SetOffset(LONG),RAW,PASCAL
  Everything_Query(),RAW,PASCAL
  Everything_SetDetail(LONG),RAW,PASCAL
  Everything_SortResults(LONG),RAW,PASCAL
  Everything_GetNumFileResults(),LONG,RAW,PASCAL
  Everything_GetNumFolderResults(),LONG,RAW,PASCAL
  Everything_GetNumResults(),LONG,RAW,PASCAL
  Everything_GetTotFileResults(),LONG,RAW,PASCAL
  Everything_GetTotFolderResults(),LONG,RAW,PASCAL
  Everything_GetTotResults(),LONG,RAW,PASCAL
  Everything_IsVolumeResult(LONG),LONG,RAW,PASCAL
  Everything_IsFolderResult(LONG),LONG,RAW,PASCAL
  Everything_IsFileResult(LONG),LONG,RAW,PASCAL
  Everything_GetResultFileName(LONG),*CSTRING,RAW,PASCAL
  Everything_GetResultPath(LONG),*CSTRING,RAW,PASCAL
  Everything_GetResult(LONG,LONG),RAW,PASCAL
END



Cambios

añadido:
  • Everything_SetDetail
  • Everything_SortResults



  • Equates

    
    !valores de retorno de Everything_GetLastError
    EVERYTHING_OK				EQUATE(0) ! sin error
    EVERYTHING_ERROR_MEMORY			EQUATE(1) ! Falta de memoria
    EVERYTHING_ERROR_IPC			EQUATE(2) ! IPC no disponible
    EVERYTHING_ERROR_REGISTERCLASSEX	EQUATE(3) ! Ha fallado RegisterClassEx
    EVERYTHING_ERROR_CREATEWINDOW		EQUATE(4) ! Ha fallado CreateWindow
    EVERYTHING_ERROR_CREATETHREAD		EQUATE(5) ! Ha fallado CreateThread
    EVERYTHING_ERROR_INVALIDINDEX		EQUATE(6) ! Resultado de índice inválido (debe ser >= 0 y < numResults)
    EVERYTHING_ERROR_INVALIDCALL		EQUATE(7) ! Llame a Everything_Query antes de obtener los resultados
    
    !atributos
    EVERYTHING_FILE_ATTRIBUTE_READONLY             EQUATE(0001h)
    EVERYTHING_FILE_ATTRIBUTE_HIDDEN               EQUATE(0002h)
    EVERYTHING_FILE_ATTRIBUTE_SYSTEM               EQUATE(0004h)
    EVERYTHING_FILE_ATTRIBUTE_DIRECTORY            EQUATE(0010h)
    EVERYTHING_FILE_ATTRIBUTE_ARCHIVE              EQUATE(0020h)
    EVERYTHING_FILE_ATTRIBUTE_DEVICE               EQUATE(0040h)
    EVERYTHING_FILE_ATTRIBUTE_NORMAL               EQUATE(0080h)
    EVERYTHING_FILE_ATTRIBUTE_TEMPORARY            EQUATE(0100h)
    EVERYTHING_FILE_ATTRIBUTE_SPARSE_FILE          EQUATE(0200h)
    EVERYTHING_FILE_ATTRIBUTE_REPARSE_POINT        EQUATE(0400h)
    EVERYTHING_FILE_ATTRIBUTE_COMPRESSED           EQUATE(0800h)
    EVERYTHING_FILE_ATTRIBUTE_OFFLINE              EQUATE(1000h)
    EVERYTHING_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED  EQUATE(2000h)
    EVERYTHING_FILE_ATTRIBUTE_ENCRYPTED            EQUATE(4000h)



    Límites y Notas

    Everything DEBE estarse ejecutando para que esto funcione.

    Vea IPC de Everything.

    Sólo puede realizar una búsqueda a la vez.
    Si hay necesidad de ello, puedo añadir búsquedas seguras de múltiples hilos.



    Descripciones




    Everything_GetLastError

    myError LONG
    
    !revisa las constantes (equates) para las descripciones de mensajes de error
    myError = Everything_GetLastError()



    Everything_SetSearch

    myString STRING
    
    !Establecer la cadena de búsqueda
    !la búsqueda por defecto es '' (cadena vacía)
    Everything_SetSearch(myString)



    Everything_SetMatchPath

    val LONG
    
    !establezca val a cero para deshabilitar coincidir ubicación
    !establezca val a  no-cero para habilitar coincidir ubicación
    !por defecto es 0 (apagado)
    Everything_SetMatchPath(val)



    Everything_SetMatchCase

    val LONG
    
    !establezca val a cero para deshabilitar coincidir mayúsculas y minúsculas
    !establezca val a no-cero para habilitar coincidir mayúsculas y minúsculas
    !por defecto es 0 (apagado)
    Everything_SetMatchCase(val)



    Everything_SetMatchWholeWord

    val LONG
    
    !establezca val a cero para deshabilitar coincidir palabra completa
    !establezca val a no-cero para habilitar coincidir palabra completa
    !por defecto es 0 (apagado)
    Everything_SetMatchWholeWord(val)



    Everything_EnableRegex

    val LONG
    
    !establezca val a cero para deshabilitar regex
    !establezca val a no-cero para habilitar regex
    !por defecto es 0 (apagado)
    Everything_EnableRegex(val)



    Everything_SetMax

    val LONG
    
    !Si muestra los resultados en una lista, establezca este valor a cuantos elementos sean visibles en la misma.
    !¿Cuántos resultados desearía que retornara Everything?
    !Utilice esto para mostrar pequeñas listas.
    !Por defecto es 0xFFFFFFFF (todos los resultados)
    Everything_SetMax(val)



    Everything_SetOffset

    offset LONG
    
    !Si muestra una lista con una barra de desplazamiento, establezca el offset al mismo que el de la barra.
    !¿Desde qué índice le gustaría que Everything retornara los resultados?
    !cero significa retornar los resultados comenzando por el primero.
    !10 significaría retornar los resultados comenzando por el décimo.
    !utilícelo para mostrar pequeñas listas.
    !por defecto es 0
    !Esto es basado en 0
    Everything_SetOffset(offset)



    Everything_Query

    !Ejecutar la consulta
    !utilice las funciones Everything_Set* para sobreescribir los parámetros de búsqueda por defecto
    !Esto envía las opciones de búsqueda a "Everything" sobre el IPC.
    !no hay retorno hasta que tenga una copia de TODOS los resultados.
    !Utilice Everything_GetResult para enumarar los resultados.
    !100 resultados tomará cerca de 1 milisegundo.
    !1 millón de resultados tomará cerca de 1 segundo.
    Everything_Query()



    Everything_SetDetail

    detail LONG
    
    !El detalle de resultado
    !Establezca detalle a no-cero para obtener información de archivo desde Everything_GetResult
    !Establezca detalle a cero para obtener nombre de archivo, offsets y longitudes de nombres de ubicación y atributos de archivo parciales solamente.
    !El detalle por defecto es cero.
    !Esto puede llamarse en cualquier momento.
    !asegúrese de que ordena los resultados con Everything_SortResults() si establece los detalles a no-cero. (esto acelerará el proceso de enumerado.)
    Everything_SetDetail(detail)



    Everything_SortResults

    NoDriveLetter LONG
    
    !Establezca NoDriveLetter a no-cero para ordenar por ubicación excluyendo las letras de unidad.
    !Establezca NoDriveLetter a cero para ordenar por ubicación.
    !Utilice esto antes de obtener los resultados detallados (establezca NoDriveLetter a cero).
    !Los resultados son ordenados por defecto por nombre.
    !Puede llamarse solo tras llamar a Everything_Query
    Everything_SortResults(NoDriveLetter)



    Everything_GetNumFileResults

    numFiles LONG
    
    !Obtener el número de archivos en la lista de resultados visible.
    numFiles = Everything_GetNumFileResults()



    Everything_GetNumFolderResults

    numFolders LONG
    
    !Obtener el número de carpetas en la lista de resultados visible.
    numFolders = Everything_GetNumFolderResults()



    Everything_GetNumResults

    numResults LONG
    
    !Obtener el número de archivos y carpetas en la lista de resultados visible.
    numResults = Everything_GetNumResults()



    Everything_GetTotFileResults

    totFiles LONG
    
    !Obtener el número total de archivos en la lista de resultados visible.
    totFiles = Everything_GetTotFileResults()



    Everything_GetTotFolderResults

    totFolders LONG
    
    !Obtener el número de archivos en la lista de resultados.
    totFolders = Everything_GetTotFolderResults()



    Everything_GetTotResults

    totResults LONG
    
    !Obtener el número de archivos y carpetas en la lista de resultados.
    !index is 0 based
    totResults = Everything_GetTotResults()



    Everything_IsVolumeResult

    index LONG
    val LONG
    
    !retorna cero si el resultado no es un volumen.
    !retorna no-cero si el resultado es un volumen.
    !el índice es basado en 0
    !obsoleto - Utilice Everything_GetResult
    val = Everything_IsVolumeResult(index)



    Everything_IsFolderResult

    index LONG
    val LONG
    
    !retorna cero si el resultado no es una carpeta.
    !retorna no-cero si el resultado es una carpeta.
    !el índice es basado en 0
    !obsoleto - Utilice Everything_GetResult
    val = Everything_IsFolderResult(index)



    Everything_IsFileResult

    index LONG
    val LONG
    
    !retorna cero si el resultado no es un archivo.
    !retorna no-cero si el resultado es un archivo.
    !el índice es basado en 0
    !obsoleto - Utilice Everything_GetResult
    val = Everything_IsFileResult(index)



    Everything_GetResultFileName

    index LONG
    filename CSTRING
    
    !el índice es basado en 0
    !esto obtiene el resultado de nombre de archivo
    !obsoleto - Utilice Everything_GetResult
    filename = Everything_GetResultFileName(index)



    Everything_GetResultPath

    index LONG
    path CSTRING
    
    !el índice es basado en 0
    !esto obtiene el resultado de ubicación
    !obsoleto - Utilice Everything_GetResult
    path = Everything_GetResultPath(index)



    Everything_GetResult

    index LONG
    result	GROUP
    FullPathFileName	STRING(260) !La ubicación completa y nombre de archivo del resultado
    PathPartLength		LONG ! Longitud de la parte de ubicación solamente
    FileNamePartOffset	LONG ! Offset into FullPathFileName for the file name part only (0 based)
    SizeHigh		LONG ! Parte alta de tamaño (ignore esto si no necesita el tamaño completo en 64 bits)
    SizeLow			ULONG ! Parte baja de tamaño
    Attributes		LONG ! Los flags de atributos pueden ser cero o más flags de EVERYTHING_FILE_ATTRIBUTE_*
    CreationYear		LONG ! El año (1601 - 30827). 
    CreationMonth		LONG ! El mes (Enero = 1, Diciembre = 12)
    CreationDayOfWeek	LONG ! El día de la semana. (domingo = 0, lunes = 1, Sábado = 6)
    CreationDay		LONG ! El día del mes (1-31). 
    CreationHour		LONG ! La hora (0-23).
    CreationMinute		LONG ! El minuto (0-59). 
    CreationSecond		LONG ! El segundo (0-59). 
    CreationMilliseconds	LONG ! El milisegundo (0-999). 
    LastAccessYear		LONG ! El año (1601 - 30827). 
    LastAccessMonth		LONG ! El mes (Enero = 1, Diciembre = 12)
    LastAccessDayOfWeek	LONG ! El día de la semana. (domingo = 0, lunes = 1, Sábado = 6)
    LastAccessDay		LONG ! El día del mes (1-31). 
    LastAccessHour		LONG ! La hora (0-23).
    LastAccessMinute	LONG ! El minuto (0-59). 
    LastAccessSecond	LONG ! El segundo (0-59). 
    LastAccessMilliseconds	LONG ! El milisegundo (0-999). 
    LastWriteYear		LONG ! El año (1601 - 30827). 
    LastWriteMonth		LONG ! El mes (Enero = 1, Diciembre = 12)
    LastWriteDayOfWeek	LONG ! El día de la semana. (domingo = 0, lunes = 1, Sábado = 6)
    LastWriteDay		LONG ! El día del mes (1-31). 
    LastWriteHour		LONG ! La hora (0-23).
    LastWriteMinute		LONG ! El minuto (0-59). 
    LastWriteSecond		LONG ! El segundo (0-59). 
    LastWriteMilliseconds	LONG ! El milisegundo (0-999). 
    	END
    
    !el índice es basado en 0
    !llenar el grupo de resultado
    !Vea Everything_SetDetail para saber qué información se ha rellenado.
    Everything_GetResult(index,ADDRESS(result))



    Ejemplo de Programa Rápido

    
    x LONG,AUTO
    m LONG
    result	GROUP
    FullPathFileName	STRING(260) !La ubicación completa y nombre de archivo del resultado
    PathPartLength		LONG ! Longitud de la parte de ubicación solamente
    FileNamePartOffset	LONG ! Offset dentro de FullPathFileName para la parte de nombre de archivo solamente(basado en 0)
    SizeHigh		LONG ! No utilizado en este ejemplo.
    SizeLow			ULONG ! No utilizado en este ejemplo.
    Attributes		LONG ! Los flags de atributos pueden ser cero o más flags de EVERYTHING_FILE_ATTRIBUTE_DIRECTORY
    CreationYear		LONG ! No utilizado en este ejemplo.
    CreationMonth		LONG ! No utilizado en este ejemplo.
    CreationDayOfWeek	LONG ! No utilizado en este ejemplo.
    CreationDay		LONG ! No utilizado en este ejemplo.
    CreationHour		LONG ! No utilizado en este ejemplo.
    CreationMinute		LONG ! No utilizado en este ejemplo.
    CreationSecond		LONG ! No utilizado en este ejemplo.
    CreationMilliseconds	LONG ! No utilizado en este ejemplo.
    LastAccessYear		LONG ! No utilizado en este ejemplo.
    LastAccessMonth		LONG ! No utilizado en este ejemplo.
    LastAccessDayOfWeek	LONG ! No utilizado en este ejemplo.
    LastAccessDay		LONG ! No utilizado en este ejemplo.
    LastAccessHour		LONG ! No utilizado en este ejemplo.
    LastAccessMinute	LONG ! No utilizado en este ejemplo.
    LastAccessSecond	LONG ! No utilizado en este ejemplo.
    LastAccessMilliseconds	LONG ! No utilizado en este ejemplo.
    LastWriteYear		LONG ! No utilizado en este ejemplo.
    LastWriteMonth		LONG ! No utilizado en este ejemplo.
    LastWriteDayOfWeek	LONG ! No utilizado en este ejemplo.
    LastWriteDay		LONG ! No utilizado en este ejemplo.
    LastWriteHour		LONG ! No utilizado en este ejemplo.
    LastWriteMinute		LONG ! No utilizado en este ejemplo.
    LastWriteSecond		LONG ! No utilizado en este ejemplo.
    LastWriteMilliseconds	LONG ! No utilizado en este ejemplo.
    	END
    
    !establecer una consulta utilizando los parámetros de búsqueda por defecto 
    !cambiar la cadena de búsqueda a 'whatthe'
    Everything_SetSearch('whatthe')
    
    !Encontrar todos los resultados para 'whatthe'
    Everything_Query()
    
    m = Everything_GetNumResults()
    LOOP x = 0 TO m - 1
    
        Everything_GetResult(x,ADDRESS(result))
    
        ...
        !hacer algo con nombre y ubicación
        ...
    END



    Ejemplo de Programa Detallado

    
    x LONG,AUTO
    m LONG
    result	GROUP
    FullPathFileName	STRING(260) !La ubicación completa y nombre de archivo del resultado
    PathPartLength		LONG ! Longitud de la parte de ubicación solamente
    FileNamePartOffset	LONG ! Offset dentro de FullPathFileName para la parte de nombre de archivo solamente(basado en 0)
    SizeHigh		LONG ! Parte alta de tamaño (ignore esto si no necesita el tamaño completo en 64 bits)
    SizeLow			ULONG ! Parte baja de tamaño
    Attributes		LONG ! Los flags de atributos pueden ser cero o más flags de EVERYTHING_FILE_ATTRIBUTE_*
    CreationYear		LONG ! El año (1601 - 30827). 
    CreationMonth		LONG ! El mes (Enero = 1, Diciembre = 12)
    CreationDayOfWeek	LONG ! El día de la semana. (domingo = 0, lunes = 1, Sábado = 6)
    CreationDay		LONG ! El día del mes (1-31). 
    CreationHour		LONG ! La hora (0-23).
    CreationMinute		LONG ! El minuto (0-59). 
    CreationSecond		LONG ! El segundo (0-59). 
    CreationMilliseconds	LONG ! El milisegundo (0-999). 
    LastAccessYear		LONG ! El año (1601 - 30827). 
    LastAccessMonth		LONG ! El mes (Enero = 1, Diciembre = 12)
    LastAccessDayOfWeek	LONG ! El día de la semana. (domingo = 0, lunes = 1, Sábado = 6)
    LastAccessDay		LONG ! El día del mes (1-31). 
    LastAccessHour		LONG ! La hora (0-23).
    LastAccessMinute	LONG ! El minuto (0-59). 
    LastAccessSecond	LONG ! El segundo (0-59). 
    LastAccessMilliseconds	LONG ! El milisegundo (0-999). 
    LastWriteYear		LONG ! El año (1601 - 30827). 
    LastWriteMonth		LONG ! El mes (Enero = 1, Diciembre = 12)
    LastWriteDayOfWeek	LONG ! El día de la semana. (domingo = 0, lunes = 1, Sábado = 6)
    LastWriteDay		LONG ! El día del mes (1-31). 
    LastWriteHour		LONG ! La hora (0-23).
    LastWriteMinute		LONG ! El minuto (0-59). 
    LastWriteSecond		LONG ! El segundo (0-59). 
    LastWriteMilliseconds	LONG ! El milisegundo (0-999). 
    	END
    
    !establecer una consulta utilizando los parámetros de búsqueda por defecto 
    !cambiar la cadena de búsqueda a 'whatthe'
    Everything_SetSearch('whatthe')
    
    !Encontrar todos los resultados para 'whatthe'
    Everything_Query()
    
    !activar detalles
    Everything_SetDetail(1)
    
    !Ordenar los resultados
    !esto es necesario para detalles no-cero
    Everything_SortResults(0)
    
    m = Everything_GetNumResults()
    LOOP x = 0 TO m - 1
        Everything_GetResult(x,ADDRESS(result))
        ...
        !hacer algo con los resultados
        ...
    END
    

    Acerca de
    © 2026 - Privacidad