Ficheros y matrices

En el apartado de definiciones, se documenta el tema de matrices, cuyos elementos tienen unos valores que se pueden asignar de varias maneras. Una primera es asignando los valores en la misma definición de la matriz; otra es asignando los valores a través de un algoritmo lo cual es especialmente necesario y recomendable en el caso de matrices de gran tamaño que puedan generarse matemáticamente y una última opción es a través de un fichero o archivo de texto.

Carga estática con el parámetro archivo en la definición de una matriz

El objeto matriz cuenta con un parámetro que está etiquetado como archivo, pero NO ESTÁ OPERATIVO, en próximas versiones del editor de configuración éste campo no aparecerá.

Definición de una matriz mediante un archivo

Definición de una matriz mediante un archivo

La carga de datos en una matriz a partir de ficheros se efectúa siempre de manera dinámica utilizando las funciones que se describen a continuación.

Carga dinámica de una matriz con la función _GetValues_

Una posibilidad para efectuar la carga de una matriz de manera dinámica, es decir, accediendo a diferentes ficheros según se desee, es utilizando la función _GetValues_ cuya sintaxis es

_GetValues_(fichero,matriz)

fichero será una cadena de caracteres entre comillas simples, por ejemplo ‘datos/datos1.txt’, o una variable que contenga una cadena y que referencie el path localizador del archivo.

matriz será una cadena de caracteres entre comillas simples, por ejemplo ‘matriz1’, o una variable que contenga una cadena. Esa cadena es la etiqueta que aparece en el fichero de datos a cargar y ha de coincidir con ella o bien, si se especifica la cadena nula o una variable con ese valor ignorará dicha etiqueta.

Esta opción es igual que la carga dinámica de un vector (consultar este artículo) y lo único que varía es la asignación que se realiza en este caso a los elementos de una matriz y en el otro sob los elementos de un vector

En la escena siguiente (puede descargarla desde aquí) se cargan los datos de una matriz denominada matra partir de los datos almacenados en tres ficheros ‘datos1a.txt’, ‘datos2a.txt’ y ‘datos3a.txt’.

En la opción “Leer vector variables 1” el archivo usado es filename1=’datos1a.txt’ cuyo contenido es

fichero datos1a.txt

fichero datos1a.txt

y donde podemos observar la etiqueta <matr1>

Análogamente tenemos los archivos filename2=’datos2a.txt’ y filename3=’datos3a.txt’

ficheros datos2a.txt y datos3a.txt

ficheros datos2a.txt y datos3a.txt

El código que permite la lectura de esos archivos es el siguiente

Lectura de una matriz desde un fichero con _GetValues_

Lectura de una matriz desde un fichero con _GetValues_

En él podemos observar como al seleccionar la primera opción del menú (menu=1) se accede a _GetValues_(filename1,’matr1′) donde filename1=’datos1a.txt’ y en el contenido de ese archivo se usa la etiqueta <matr1>.

Para la siguiente opción la llamada es _GetValues_(filename2, ‘matr1’) donde filename2=’datos2a.txt’ y la etiqueta es también ‘matr1’ que coincide con la etiqueta usada en dicho fichero (podría ser también una variable cuya valor fuera ‘matr1’.

Y en la tercera opción se usa _GetValues_(filename3, ”) donde filename3=’datos3a.txt’ y en matriz se indica la cadena nula, es decir, que se ignore la etiqueta <NoUsado> especificada en datos3a.txt (podría ser otra etiqueta no necesariamente NoUsado).

En cada uno de esos archivos se efectúa una asignación a las variables que se han denominado aux1, aux2, aux3, aux4, aux5 y aux6 que son las que en el código de la escena se asignan a los elementos de la matriz matr11, es decir, que se usan como variables de paso.

Carga dinámica de una matriz con la función _Load_ y _StrToMatrix_

La sintaxis de la función _Load_ es

variable=_Load_(fichero)

donde fichero es una cadena de caracteres que proporciona la dirección donde se ubica el fichero a cargar y variable es la que variable a la que se asigna el contenido de ese fichero como una cadena de caracteres.

Una vez asignado el contenido a dicha variable, la función _StrToMatrix_ (variable,matriz‘) asigna los valores a cada elemento de la matriz etiquetada como matriz.

Hay que señalar que el contenido del fichero ha de contener una primera línea con la etiqueta <matriz> y finalizar con la etiqueta </matriz>.

En la siguiente escena puede comprobar el funcionamiento de estas funciones (puede descargarse aquí).

El archivo usado en la escena anterior es el siguiente:

fichero que contiene los elementos de una matriz

fichero que contiene los elementos de una matriz

en él podemos observar las etiquetas y el script para inscrustarlo en el código html y que sea accesible en local.

Carga dinámica de un vector con la función _GetMatrix_

La sintaxis de esta función es _GetMatrix_(fichero,’matriz‘) donde fichero es una cadena de caracteres que proporciona la dirección donde se ubica el fichero a cargar y matriz es la etiqueta de la matriz en la que se desean cargar sus elementos. Esa etiqueta ha de ir entre comillas simples y ha de coincidir con la etiqueta que aparece en el contenido del fichero que se está leyendo. Su efecto es equivalente a _Load_ y _StrToMatrix_ de la sección anterior. También en la escena de esa sección puede observar el funcionamiento de esta función.

Guardar vectores en un fichero

Para esta funcionalidad consulte el artículo Guardar ficheros.

Haz un comentario