- Banderas de apertura de archivos
- Propiedades de archivos
- Posicionamiento dentro del archivo
- Uso de página de código
- MessageBox
Banderas de apertura de archivos
Estos son los valores de banderas que determinan el modo de manejar un archivo. Las banderas están determinadas como sigue:
Identificador |
Valor |
Descripción |
---|---|---|
FILE_READ |
1 |
Archivo se abre para la lectura. La bandera se usa cuando un archivo se abre, en la función (FileOpen()). Cuando abrimos un archivo, es obligatorio indicar la bandera FILE_WRITE y/o la bandera FILE_READ. |
FILE_WRITE |
2 |
Archivo se abre para la escritura. La bandera se usa cuando un archivo se abre, en la función (FileOpen()). Cuando abrimos un archivo, es obligatorio indicar la bandera FILE_WRITE y/o la bandera FILE_READ. |
FILE_BIN |
4 |
Modo binario de lectura-escritura (sin conversión de una cadena y en una cadena). La bandera se usa cuando un archivo se abre, en la función (FileOpen()) |
FILE_CSV |
8 |
Archivo del tipo csv (todos sus elementos se convierten a las cadenas del tipo correspondiente, unicode o ansi, y se separan con un delimitador). La bandera se usa cuando un archivo se abre, en la función (FileOpen()) |
FILE_TXT |
16 |
Archivo de texto simple (igual que el archivo csv pero sin tomar en cuenta los delimitadores). La bandera se usa cuando un archivo se abre, en la función (FileOpen()) |
FILE_ANSI |
32 |
Cadenas del tipo ANSI (símbolos de un byte). La bandera se usa cuando un archivo se abre, en la función (FileOpen()) |
FILE_UNICODE |
64 |
Cadenas del tipo UNICODE (símbolos de dos byte). La bandera se usa cuando un archivo se abre, en la función (FileOpen()) |
FILE_SHARE_READ |
128 |
Acceso compartido para la lectura desde varios programas. La bandera se usa cuando se abre un archivo (FileOpen()), pero durante la apertura no sustituye la necesidad de indicar FILE_WRITE y/o la bandera FILE_READ |
FILE_SHARE_WRITE |
256 |
Acceso compartido para la escritura desde varios programas. La bandera se usa cuando se abre un archivo (FileOpen()), pero durante la apertura no sustituye la necesidad de indicar FILE_WRITE y/o la bandera FILE_READ |
FILE_REWRITE |
512 |
Posibilidad de reescribir un archivo usando las funciones FileCopy() y FileMove(). El archivo tiene que existir o abrirse para la escritura. En caso contrario el archivo no se abrirá. |
FILE_COMMON |
4096 |
Ubicación del archivo en la carpeta general de todos los terminales de cliente \Terminal\Common\Files. La bandera se usa en las funciones (FileOpen()), (FileCopy(), FileMove()), (FileIsExist()) |
Durante la apertura de un archivo se puede indicar una o más banderas. Esto se llama la combinación de banderas. Esta combinación se escribe mediante el símbolo del lógico OR (|), éste se coloca entre las banderas especificadas. Por ejemplo, para abrir un archivo en el formato CSV para la lectura y escritura al mismo tiempo, podemos indicar la combinación FILE_READ|FILE_WRITE|FILE_CSV.
Ejemplo:
int filehandle=FileOpen(filename,FILE_READ|FILE_WRITE|FILE_CSV); |
Existen unas particularidades a la hora de indicar las banderas de lectura y escritura:
- Si indicamos FILE_READ, se intenta abrir un archivo que ya existe. Si este archivo no existe, no se puede abrirlo y el nuevo no se crea.
- Si ponemos FILE_READ|FILE_WRITE, se crea un archivo nuevo, si el archivo con el nombre especificado no existe.
- FILE_WRITE el archivo vuelve a crearse teniendo el tamaño cero.
Cuando abrimos un archivo, es obligatorio indicar la bandera FILE_WRITE y/o la bandera FILE_READ.
Las banderas que determinan el tipo de lectura de un archivo abierto poseen la prioridad. La mayor prioridad tiene la bandera FILE_CSV, luego FILE_BIN, y luego FILE_TXT que tiene la menor prioridad. De esta manera, si están indicadas varias banderas (FILE_TXT|FILE_CSV o FILE_TXT|FILE_BIN o FILE_BIN|FILE_CSV), se usará la bandera con la mayor prioridad.
Las bandera que determinan el tipo de codificación también tienen la prioridad. La bandera FILE_UNICODE es de mayor prioridad que la bandera FILE_ANSI. Por tanto, al indicar la combinación FILE_UNICODE|FILE_ANSI, se usa la bandera FILE_UNICODE.
Si no se indica FILE_UNICODE, ni tampoco FILE_ANSI, se sobreentiende FILE_UNICODE. Si no se indica FILE_CSV, ni FILE_BIN, ni FILE_TXT, entonces se sobreentiende FILE_CSV.
Si un archivo está abierto para la lectura como un archivo de texto (FILE_TXT o FILE_CSV), y además, al principio de este archivo se encuentra 0xff,0xfe de dos bytes, la bandera de codificación será FILE_UNICODE, incluso si se especifica la bandera FILE_ANSI.
Véase también