FILEINFO ( variable.archivo , clave)
El valor de variable.archivo es la variable de archivo de un archivo abierto.
El valor de clave es un número que indica la información concreta necesaria. Estos números de clave se describen en la tabla Claves y valores suministrados a la función FILEINFO.
Utilice la función FILEINFO para devolver información sobre la configuración del archivo especificado, como los parámetros, el módulo y la carga, el nombre de archivo del sistema operativo y el nombre VOC. La información devuelta depende del tipo de archivo y el valor de la clave.
Si el primer argumento no es una variable de archivo, todas las claves excepto 0 devuelven una serie vacía. También se visualiza un mensaje de aviso. Se genera un error muy grave si se suministra una clave que no es válida.
Se proporciona un archivo de inserción de nombres de equivalencia para permitir al usuario emplear mnemónicos en lugar de números de clave. El archivo de inserción, denominado FILEINFO.INS.IBAS, se encuentra en el directorio INCLUDE del directorio de la cuenta UV. En las cuentas de tipo PIOPEN se hace referencia a él mediante un puntero de archivo VOC denominado SYSCOM. Utilice la sentencia $INCLUDE para insertar este archivo si desea utilizar los nombres de equivalencia, como se muestra en el ejemplo. La tabla siguiente muestra el nombre simbólico, el valor y la descripción:
Nombre simbólico | Valor | Descripción |
---|---|---|
FINFO$IS.FILEVAR | 0 | 1 si variable.archivo es una variable de archivo válida; 0 en caso contrario. |
FINFO$VOCNAME | 1 | Nombre VOC del archivo. |
FINFO$PATHNAME | 2 | Nombre de vía de acceso del archivo. |
FINFO$TYPE | 3 | Tipo de archivo tal como se indica a continuación: 1 Hash estático 3 Hash dinámico 4 Tipo 1 5 Secuencial 7 Distribuido y multivolumen |
FINFO$HASHALG | 4 | Algoritmo hash: 2 para GENERAL, 3 para SEQ.NUM. |
FINFO$MODULUS | 5 | Módulo actual. |
FINFO$MINMODULUS | 6 | Módulo mínimo. |
FINFO$GROUPSIZE | 7 | Tamaño de grupo, en unidades de 1 KB. |
FINFO$LARGERECORDSIZE | 8 | Tamaño de registro grande. |
FINFO$MERGELOAD | 9 | Parámetro de carga con fusión. |
FINFO$SPLITLOAD | 10 | Parámetro de carga partida. |
FINFO$CURRENTLOAD | 11 | Carga actual del archivo (%). |
FINFO$NODENAME | 12 | Serie vacía, si el archivo reside en el sistema local; en caso contrario, nombre del nodo donde reside el archivo. |
FINFO$IS.AKFILE | 13 | 1 si existen índices secundarios en el archivo; 0 en caso contrario. |
FINFO$CURRENTLINE | 14 | Número de línea actual. |
FINFO$PARTNUM | 15 | En el caso de un archivo distribuido, devuelve una lista de los números de componente abiertos actualmente. |
FINFO$STATUS | 16 | En el caso de un archivo distribuido, devuelve una lista de los códigos de estado que muestran si la última operación de E/S se ha ejecutado correcta o incorrectamente para cada componente. El valor -1 indica que el archivo componente correspondiente no está abierto. |
FINFO$RECOVERYTYPE | 17 | 1 si el archivo está marcado como recuperable, 0 si no lo está. Devuelve una serie vacía si la posibilidad de recuperación no está permitida en el tipo de archivo (por ejemplo, los archivos de tipo 1 y de tipo 19). |
FINFO$RECOVERYID | 18 | Siempre devuelve una serie vacía. |
FINFO$IS.FIXED.MODULUS | 19 | Siempre devuelve 0. |
FINFO$NLSMAP | 20 | Si el soporte multilingüístico está habilitado, nombre de correlación del archivo; en caso contrario, una serie vacía. Si el nombre de correlación es el valor predeterminado especificado en el archivo uvconfig, la serie devuelta es el nombre de correlación seguido del nombre del parámetro configurable entre paréntesis. |
FINFO$MAXKEYSIZE | 21 | Devuelve el tamaño de caracteres máximo de la clave que se puede escribir en el archivo especificado. El tamaño de caracteres máximo varía en función del valor de separación, ya que no puede ser mayor que la mitad del valor de separación. Por ejemplo, si el valor de separación es 4, cada grupo contiene 2048 bytes, lo que significa que la clave más grande no puede tener más 1024 bytes. El tamaño máximo de cualquier clave, independientemente del tamaño de separación, es 2048 bytes. |
FINFO$DISKCACHEMODE | 22 | 0 - El archivo no está en la memoria caché de disco. 1 - El archivo está en la memoria caché de disco con la modalidad de lectura/grabación estándar. 2 - El archivo está en la memoria caché de disco con la modalidad de solo lectura. |
FINFO$PRECACHE | 23 | 1 - El archivo se ha precargado en la memoria caché de disco; 0 en caso contrario. |
FINFO$WRITEDEFER | 24 | 1 - La grabación del archivo en la memoria caché de disco se ha diferido; 0 en caso contrario. |
FINFO$MAXOPTION | 20 | Número máximo de claves de FINFO$. |
Si la función se ejecuta correctamente, el valor devuelto por la función STATUS es 0. Si la función no se ejecuta correctamente, STATUS devuelve un valor distinto de cero. La tabla siguiente muestra la clave, el tipo de archivo y el valor devuelto para clave:
Clave | Dinámico | Directorio | Distribuido | Secuencial |
---|---|---|---|---|
0 | 1 = archivo abierto 0 = archivo cerrado | 1 = archivo abierto 0 = archivo cerrado | Matriz dinámica de códigos: 1 = archivo abierto 0 = archivo cerrado | 1 = archivo abierto 0 = archivo cerrado |
1 | Nombre VOC | Nombre VOC | Nombre VOC | Nombre VOC |
2 | Nombre de vía de acceso del archivo | Nombre de vía de acceso del archivo | Matriz dinámica de nombres de vía de acceso completos por orden de registro VOC (nombre de vía de acceso como en VOC para archivos no disponibles) | Nombre de vía de acceso del archivo |
3 | 3 | 4 | 7 | 5 |
4 | 2 = GENERAL 3 = SEQ.NUM |
Serie vacía | Matriz dinámica de códigos: 2 = GENERAL 3 = SEQ.NUM | Serie vacía |
5 | Módulo actual | 1 | Matriz dinámica del módulo actual de cada archivo componente | |
6 | Módulo mínimo | Serie vacía | Matriz dinámica del módulo mínimo de cada archivo componente | Serie vacía |
7 | Tamaño de grupo en registros de disco | Serie vacía | Matriz dinámica del tamaño de grupo de cada archivo componente | Serie vacía |
8 | Tamaño de registro grande | Serie vacía | Matriz dinámica del tamaño de registro grande de cada archivo componente | Serie vacía |
9 | Valor de carga con fusión | Serie vacía | Matriz dinámica del % de carga con fusión de cada archivo componente | Serie vacía |
10 | Valor de carga partida | Serie vacía | Matriz dinámica del valor de carga partida de cada archivo componente 1 | Serie vacía |
11 | Valor de carga actual | Serie vacía | Matriz dinámica del valor de carga actual de cada archivo componente 1 | Serie vacía |
12 | Archivo local: serie vacía Archivo remoto: nombre de nodo | Serie vacía | Matriz dinámica de valores donde valor es: Archivo local = serie vacía Archivo remoto = nombre de nodo | Serie vacía |
13 | 1 = índices 2 = no índices | 0 | 1 = índices comunes presentes 2 = ninguno presente | Serie vacía |
15 | Serie vacía | Serie vacía | Matriz dinámica de códigos por orden de registro VOC. Código: serie vacía si archivo componente no abierto; número de componente si archivo abierto. | Serie vacía |
16 | Serie vacía | Serie vacía | Matriz dinámica de códigos por orden de registro VOC para cada archivo componente: 0 = operación de E/S correcta -1 = archivo componente no disponible >0 = código de error | Serie vacía |
19 | 0 = módulo no fijo 1 = módulo fijo | Serie vacía | Matriz dinámica de códigos para cada archivo componente: 0 = módulo no fijo 1 = módulo fijo | Serie vacía |
1Los valores devueltos para los archivos distribuidos son matrices dinámicas con el valor adecuado para archivo componente. Los valores individuales dependen del tipo de archivo del archivo componente. Por ejemplo, si el archivo componente es un archivo hash, algunos valores, como el módulo mínimo, tienen un valor vacío en la matriz dinámica para ese archivo componente.
La función FILEINFO determina el nombre de correlación de un archivo utilizando el valor de FINFO$NLSMAP. El soporte multilingüístico utiliza el archivo de inserción denominado FILEINFO.H.
En el ejemplo siguiente, se inserta el archivo que contiene los nombres de equivalencia de claves con la sentencia $INCLUDE. Se abre el archivo FILMS y se visualiza su tipo de archivo.
$INCLUDE SYSCOM FILEINFO.INS.IBAS
OPEN '','FILMS' TO FILMS
ELSE STOP 'CANT OPEN FILE'
PRINT FILEINFO(FILMS,FINFO$TYPE)
En el ejemplo siguiente, se abre el archivo FILMS y se visualiza su tipo de archivo al especificar la clave numérica:
OPEN '','FILMS' TO FILMS
ELSE STOP 'CANT OPEN FILE'
PRINT FILEINFO(FILMS,3)