Interacción con ficheros
Cuando queremos salvar datos o leer datos de diferentes bases de conocimiento, es necesario poder tener tales datos almacenados en una memoria física, por este motivo, es necesario poder abrir ficheros, leer y escribir información sobre ellos y poder cerrar dichos ficheros cuando ya no sea necesario su uso. Para este caso, tenemos los comandos see( ), seen( ), tell( ) y told( ).
see( ) y seen( )
estos dos comandos son utilizados para abrir un archivo, obtener información de ese archivo y cerrar el archivo cuando ya ha sido utilizado.
Para utilizar see( ), es necesario indicarle el lugar y nombre del archivo a leer, por ejemplo see(‘C:\documents\archivo.pl’), de este modo le estaríamos diciendo que el archivo se encuentra en la carpeta documents, y que se llama archivo.pl. Cuando hemos abierto el archivo, ya es posible poder leer la información que se encuentra dentro de él, en este caso por medio del comando read( ), cuando se abra el archivo, todos los comandos de lectura estarán enfocados a la lectura de tal archivo, solo hasta que se cierra dicho archivo los elementos de lectura se enfocaran a leer los datos del teclado. Para cerrar el archivo, se coloca el comando seen. Esto se puede ver en la siguiente sección de código:
1 |
leer(X):- see(‘C:\documents\archivo.pl’), read(X), seen. |
Esta sección de código abrirá el archivo “archivo.pl”, leerá un dato que se encuentra en dicho archivo, y lo regresará en la variable X, cerrando posteriormente el archivo abierto.
tell( ) y told( )
Estos comandos son utilizados para escribir dentro de un fichero. Abrimos el fichero por medio de tell(‘C:\documents\archivo.pl’), y a partir de aquí todo lo que escribamos, será escrito en el fichero “archivo.pl”, hasta que cerremos el archivo, volveremos a escribir en el monitor. El archivo se cierra por medio de la palabra reservada told. Esto puede verse en la siguiente sección de pseudo código.
1 |
escribir(X, Y):- tell(‘C:\documents\archivo.pl’), write(X), nl, write(Y), told. |
Esta sección de código, nos muestra un programa que abre el archivo “archivo.pl”, escribe el valor guardado en X, da un salto de línea, escribe el valor almacenado en Y y cierra el archivo.
Estos comandos son sumamente fáciles de implementar y de utilizar.
Ejercicio 1: Realizar un programa que escriba al menos 5 datos dentro del fichero, y que estos datos puedan ser interpretados después por PROLOG, es decir, que cada dato termine con un punto.
Ejercicio 2: Leer los datos que se encuentran almacenados en el fichero creado en el ejercicio 1, y guardarlos en una lista.
Si nosotros queremos conocer cual es el canal activo que tenemos, podemos utilizar el comando telling(X), el cual nos dará como resultado el nombre del canal, en este caso nos arrojaría X = user.