Ficheros

Contenido

¿Existe fichero?

Copiar fichero

Eliminar fichero de disco

Fichero: abrir

Fichero: grabar línea

Fichero: leer línea

Get atributos fichero

Renombrar o mover fichero

Ficheros

Grupo de comandos de instrucción que nos permiten operar con ficheros en disco.

¿Existe fichero?

Comando de instrucción del grupo Ficheros y directorios que informa de la existencia de un fichero del disco.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda

Senda del fichero cuya existencia queremos determinar. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si el fichero existe o false (0) si no existe en disco.

Identificador de variable local numérica de retorno de tamaño en bytes (Opcional)

Variable local en la que el comando retornará el tamaño del fichero (bytes) si éste existe.

Funcionalidad

Comprueba la existencia de un fichero en disco, devolviendo el tamaño de éste en bytes.

Comentarios

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto no es necesario definir la senda completa.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

Ejemplo

Comprobamos si existe el directorio documentostmp en la caché del cliente y en caso de no existir lo creamos.

Rem ( Creamos el directorio de documentos )
¿Existe fichero? ( sysCacheClientPath +"documentostmp", EXS,  )
If ( ! EXS )
    Crear directorio ( sysCacheClientPath +"documentostmp", Sí,  )

Copiar fichero

Comando de instrucción del grupo Ficheros y directorios que copia un fichero en disco.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda de origen

Senda del fichero que queremos copiar. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Fórmula de senda de destino

Senda del fichero copia que ha de incluir el nombre del fichero. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si ha podido realizar la operación o false (0) si no ha podido hacerlo.

Funcionalidad

Copia el fichero de origen en la senda de destino.

Comentarios

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

Ejemplo

Copiamos el fichero original.pdf a original_copia.pdf dentro de la caché el cliente.

Copiar fichero ( sysCacheClientPath +"original.pdf", sysCacheClientPath +"original_copia.pdf", COPIADO )
If ( ! COPIADO )
    Mensaje ( "Fichero original.pdf no copiado", Información, ,  )

Eliminar fichero de disco

Comando de instrucción del grupo Ficheros y directorios que elimina un fichero del disco.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda

Senda del fichero que queremos eliminar. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si ha podido realizar la operación o false (0) si no ha podido hacerlo.

Funcionalidad

Elimina un fichero en disco.

Comentarios

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto no es necesario definir la senda completa.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

Ejemplo

Eliminamos el fichero original.pdf de la caché del cliente en caso de que exista.

¿Existe fichero? ( sysCacheClientPath +"original.pdf", EXISTE, TAMAÑO )
If ( EXISTE )
    Eliminar fichero de disco ( sysCacheClientPath +"original.pdf", OK )

Fichero: abrir

Comando de instrucción del grupo Ficheros y directorios que abre un fichero para lectura o escritura.

Origen de la instrucción: cualquiera.

Destino del subproceso: el mismo que el origen.

Parámetros

Manejador de fichero

Identificador del fichero. Nos permite referenciarlo a la hora de realizar operaciones de lectura o escritura.

Fórmula de senda

Senda del fichero que queremos leer o escribir. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Modo de apertura

Indicaremos qué operaciones realizaremos con el fichero abierto:

Lectura y escritura

Realizaremos operaciones de lectura y escritura en un fichero ya existente.

Lectura y escritura (Crea o agrega)

Realizaremos operaciones de lectura y escritura en un fichero. Si existe el fichero previamente añade la información a la existente, si no existe crea el fichero.

Lectura y escritura (Crea o limpia)

Realizaremos operaciones de lectura y escritura en un fichero. Si existe el fichero previamente lo sobreescribe borrando la información previa, si no existe crea el fichero.

Sólo lectura

Realizaremos únicamente operaciones de lectura en un fichero ya existente.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si ha podido realizar la operación o false (0) si no ha podido hacerlo.

Codificación (Opcional)

Este parámetro nos permitirá elegir la codificación que tendrá el documento a generar. Al desplegar el combo se presentarán los tipos de codificación disponibles.

Funcionalidad

Abre un fichero en disco para realizar operaciones de lectura o escritura según lo hayamos configurado. Si el fichero existe podremos agregar la información o sobrescribir el fichero borrando la información previa. Si no existe podemos crearlo.

Las operaciones de lectura y escritura han de realizarse en el subproceso generado por la apertura del fichero.

Los comandos que realizan las operaciones de lectura y escritura son: fichero: grabar línea, que hacen uso del manejador para indicar en qué fichero se realizará la operación. De esta forma podemos anidar operaciones de lectura y escritura en distintos ficheros.

Las operaciones de lectura y escritura son secuenciales y se realizan línea a línea. Por tanto debemos hacer uso de un bucle por medio del comando For por lo que es posible componer el texto completo que se escribirá en el fichero y realizar la operación con una única ejecución del comando.

Comentarios

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto no es necesario definir la senda completa.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

Ejemplo

Seleccionamos el fichero que deseamos abrir de tipo *csv o *.txt.

Ventana de selección de fichero ( SND_FIC, OK_ACE, "*.csv, *.txt", tempPath() )
If ( ( !OK_ACE ) | isEmpty(SND_FIC) )
    Set retorno proceso = NO
    Finalizar proceso
Rem ( Abrimos el fichero para leerlo )
Fichero: abrir ( fichero, SND_FIC, Sólo lectura, OK_ABR, .Ninguno )

Fichero: grabar línea

Comando de instrucción del grupo Ficheros y directorios que escribe una línea en el fichero seleccionado.

Origen de la instrucción: cualquiera.

Destino del subproceso: el mismo que el origen.

Parámetros

Manejador de fichero

Identificador del fichero que queremos escribir. Este habrá sido establecido previamente dentro del mismo proceso mediante el comando de instrucción fichero: abrir.

Fórmula de dato

Dato que queremos escribir en la línea del fichero. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si ha podido realizar la operación o false (0) si no ha podido hacerlo.

Funcionalidad

Escribe una línea en el fichero abierto. Las operaciones de escritura han de realizarse en el subproceso generado por la apertura del fichero.

Comentarios

En función del sistema operativo en el que ejecutemos el proceso, como carácter de fin de línea se añadirán los caracteres siguientes:

Windows: \r\n Linux: \n OS X: \r

Las operaciones de lectura y escritura son secuenciales y se realizan línea a línea. Por tanto debemos hacer uso de un bucle por medio del comando For por lo que es posible componer el texto completo que se escribirá en el fichero y realizar la operación con una única ejecución del comando.

Es posible anidar operaciones de escritura en distintos ficheros, haciendo uso del manejador del fichero para seleccionar en aquél en el que queremos escribir.

Ejemplo

Abrimos el fichero c:\fichero.txt para grabar los registros seleccionados de la rejilla REJ.

Fichero: abrir ( fichero, "c:\fichero.txt", Lectura/escritura (Crea o limpia), OK_ABR, .Ninguno )
    Interfaz: procesar ( REJ, Seleccionadas )
        Rem ( Recorrer en modo "sólo lectura" la lista para la exportación )
        Recorrer lista sólo lectura
            Rem ( Grabar la línea con los campos de la rejilla )
            Fichero: grabar línea ( fichero, "" + rightJustified(#ID, 6, "0") + leftJustified(#NAME, 256, " "),  )
            Rem ( El campo ID con longitud 6 ajustado a la derecha y rellenado con ceros a la izquierda, el nombre con 256 caracteres )

Fichero: leer línea

Comando de instrucción del grupo Ficheros y directorios que lee una línea en el fichero seleccionado.

Origen de la instrucción: cualquiera.

Destino del subproceso: el mismo que el origen.

Parámetros

Manejador de fichero

Identificador del fichero que queremos leer. Este habrá sido establecido previamente dentro del mismo proceso mediante el comando de instrucción Fichero: abrir.

Identificador de variable local alfabética de retorno (Opcional)

El comando retornará en esta variable local el dato leído en la línea.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si ha podido realizar la operación o false (0) si no ha podido hacerlo.

Funcionalidad

Lee una línea del fichero abierto. Las operaciones de lectura han de realizarse en el subproceso generado por la apertura del fichero.

Comentarios

Las operaciones de lectura y escritura son secuenciales y se realizan línea a línea. Por tanto debemos hacer uso de un bucle por medio del comando For condicionado a la realización de la operación de lectura o escritura, para leer o escribir varias líneas.

Es posible anidar operaciones de lectura en distintos ficheros, haciendo uso del manejador del fichero para seleccionar aquél del que queremos leer.

Nota

En la versión de 32 bits no se podrán leer líneas cuyo tamaño supere los 128 Mb.

Ejemplo

Abrimos el fichero c:\fichero.txt para leer su primera linea llevando el contenido a la variable local LINEA.

Fichero: abrir ( fichero, “C:\fichero.txt”, Sólo lectura, OK_ABR, .Ninguno )
Fichero: leer línea ( fichero, LINEA, OK)

Get atributos fichero

Comando de instrucción del grupo Ficheros y directorios que informa de los atributos básicos de un fichero en disco.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda

Senda del fichero cuyos atributos básicos queremos conocer. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Identificador de variable local fecha de retorno

Variable local en la que el comando retornará la fecha de última modificación del fichero.

Identificador de variable local hora de retorno (Opcional)

Variable local en la que el comando retornará la hora de última modificación del fichero.

Identificador de variable local numérica de retorno de tamaño en bytes (Opcional)

Variable local en la que el comando retornará el tamaño del fichero (bytes).

Funcionalidad

Informa de los atributos básicos de un fichero en disco: fecha y hora de última modificación del fichero y el tamaño en bytes.

Comentarios

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto no es necesario definir la senda completa.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

Ejemplo

Leemos de la caché del cliente el fichero original_copia_old.pdf guardando los valores de sus atributos en las variables locales correspondientes.

Get atributos del fichero ( sysCacheClientPath +"original_copia_old.pdf", FECHA, HORA, TAMAÑO )

Renombrar o mover fichero

Comando de instrucción del grupo Ficheros y directorios que renombra un fichero del disco.

Origen de la instrucción: cualquiera.

Destino del subproceso: ninguno.

Parámetros

Fórmula de senda de origen

Senda del fichero que queremos renombrar. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Fórmula de senda de destino

Nueva senda de destino del fichero. Este parámetro puede ser una cadena o literal, un campo, una variable, el retorno de una función, etc.

Identificador de variable local booleana de retorno de ok (Opcional)

El comando retornará true (1) en esta variable local si ha podido realizar la operación o false (0) si no ha podido hacerlo.

Funcionalidad

Renombra un fichero en disco. El fichero será movido si la senda de destino es distinta a la senda de origen.

Comentarios

En ambas sendas se ha de definir el nombre del fichero.

Si tenemos establecido un directorio por defecto con el comando de instrucción Cambiar directorio por defecto no es necesario definir la senda completa.

Las sendas pueden estar definidas según el estilo de cualquiera de los sistemas operativos pero se han de tener en cuenta las diferencias en cuanto a la definición de la raíz del sistema.

Ejemplo

Renombramos el fichero original_copia.pdf de la caché del cliente por el nombre original_copia_old.pdf.

Renombrar o mover fichero ( sysCacheClientPath +"original_copia.pdf", sysCacheClientPath +"original_copia_old.pdf", OK )

Última actualización