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

    © 2025 - Privacidad