data3
/* data3.pro */ /* gestione database e menu */ /* openwrite openappend openmodify */ /* nome database prefissato RUBRIX.dba */
nowarnings
domains file = filexy Dato = symbol Posizione = real Modo = integer
include "menu.pro"
predicates fine finestra elabora1(integer) elabora2(integer) elabora3(integer) termine1(integer) termine2(integer) termine3(integer) scelta1(integer) scelta2(integer) scelta3(integer) scelta(integer) elabora(integer) azione1 azione2 azione3 azione termine(integer) goal finestra,azione.
clauses finestra:- makewindow(1,5,1,"",1,1,20,70), disk("A:").
azione:- menu(10,40,[azione1,azione2,azione3,fine],Scelta), elabora(Scelta), termine(Scelta),!. elabora(0). elabora(1):-Scelta(1). elabora(2):-Scelta(2). elabora(3):-Scelta(3). termine(4). termine(0). Scelta(1):-azione1. Scelta(2):-azione2. Scelta(3):-azione3. Scelta(4):-fine.
azione1:- menu(2,30,[openwrite,menu_principale],Scelta), elabora1(Scelta), termine1(Scelta),!. elabora1(0). elabora1(1):-scelta1(1). elabora1(2):-scelta1(2). termine1(2). termine1(0). scelta1(1):-write("scrittura file nuovo\n"), beep, openwrite(filexy,"rubrix.dba"), writedevice(filexy), closefile(filexy), azione1. scelta1(2):-write("ritorno a menu principale\n"), azione.
azione2:- menu(5,50,[openappend,torna_a_menu_principale], Scelta), elabora2(Scelta), termine2(Scelta),!. elabora2(0). elabora2(1):-scelta2(1). elabora2(2):-scelta2(2). termine2(2). termine2(0). scelta2(1):-write("aggiunta dati a file\n"), write("scrivi elemento da aggiungere\n"), readln(Dato), openappend(filexy,"rubrix.dba"), writedevice(filexy), write(Dato,"\n"), closefile(filexy), beep,azione2. scelta2(2):-write("ritorno a menu principale\n "), beep,azione.
azione3:- menu(6,40,[openmodify,menu_principale],Scelta), elabora3(Scelta), termine3(Scelta),!. elabora3(0). elabora3(1):-scelta3(1). elabora3(2):-scelta3(2). termine3(2). termine3(0). scelta3(1):-write("modifica dati su file \n"), Write("scrivi dato da sostituire\n"), readln(Dato), write("scrivi in quale posizione \n"), readreal(Posizione), write("scrivi in quale modo 0,1 \n"), readint(Modo), openmodify(filexy,"rubrix.dba"), writedevice(filexy), filepos(filexy,Posizione,Modo), write(Dato,"\n"), closefile(filexy), beep,azione3. scelta3(2):-write("torna a menu principale\n"), beep,azione.
fine:- clearwindow, write("fine prove\n"),beep.