/****************************************************************************

Programa que permite manejar archivos

con el uso de ventanas y

con el uso de database

 

Inteligencia artificial

Gonzalo Villarreal Farah.

Corre con la versión Turbo Prolog 2.0

********************************************************************/

 

%TRACE

DOMAINS

s=string

x=symbol

i=integer

ls=s*

DATABASE

f(s)

PREDICATES

recupera(ls)

manda(i)

menu

repite

GOAL

makewindow(1,7,7,"Manejo de database",10,20,10,45),

menu.

CLAUSES

menu:-

clearwindow,

write(" 1.- Escribir en el archivo \n"),

write(" 2.- Leer archivo \n"),

write(" 3.- Agregar archivo \n"),

write(" 4.- Terminar \n"),

write(" Ingrese opcion --> "),

cursor(A,B),

repite,

cursor(A,B),

write(" "),

cursor(A,B),

readint(X),

manda(X),

removewindow,

menu.

repite.

repite:-repite.

manda(1):-

retractall(_),

makewindow(1,113,110," Ingreso ",12,25,10,45),

write("Ingrese los datos al archivo: "),

nl,

readln(X),

assertz(f(X)),

save("A:dato").

manda(3):-retractall(_),

consult("A:dato"),

makewindow(1,113,110," Agregar ",12,25,10,45),

write("Agrege los datos al archivo: "),

nl,readln(X),

assertz(f(X)),

save("A:dato"),removewindow,fail.

manda(2):-retractall(_),

consult("A:dato"),

makewindow(1,113,110," Leer ",12,25,10,45),

findall(X,f(X),L),

write("El archivo tiene lo siguiente : "),

recupera(L),

nl,

readchar(_).

manda(4):-exit.

recupera([]):-!.

recupera([A|L]):-write("\n ",A),recupera(L),!.