/****************************************************************************
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),!.