xfile2
/* file5.pro */ /* attiva INCLUDE MENU.PRO */ /* attivazione menu e scelta opzioni */ /* con ritorno a menu chiamante */ /* con riduzione opzioni menu */ /* con gestione file su disco DIR */
nowarnings include "menu.pro"
domains Enter = char Programmi=string
predicates azione termine(integer) elabora(integer) scelta(integer) richiesta(integer) stampa fine
goal makewindow(1,7,1,"",1,1,20,60), azione.
clauses azione:- write("\n"), write("premi enter\n"), readchar(Enter), clearwindow, write("scegli opzione con tasti frecce\n"), menu(3,40, [".1.scelta1...informa...........", ".2.scelta2...cerca su A.PRO....", ".3.scelta3...cerca su A.*.*....", ".4.scelta4...cerca su C.*.*....", ".5.scelta5...fine.............."], SCELTA), elabora(SCELTA), termine(SCELTA),!. elabora(0). elabora(1):-scelta(1). elabora(2):-scelta(2). elabora(3):-scelta(3). elabora(4):-scelta(4). elabora(5):-scelta(5). termine(5). termine(0). scelta(1):-write("scelta1"),nl, write("seleziona opzioni da menu.."), azione.
scelta(2):-write("scelta2..\n"), sound(100,600),richiesta(2), azione.
scelta(3):-write("scelta 3.\n"), sound(100,700),richiesta(3), azione.
scelta(4):-write("scelta 4\n "), sound(100,800),richiesta(4), azione.
scelta(5):-write("fine chiamate"), sound(100,600),fine.
richiesta(2):- dir("A:/file","*.pro",Programmi),stampa.
richiesta(3):- dir("A:/file","*.*",Programmi),stampa.
richiesta(4):- dir("//","*.*",Programmi),stampa.
stampa:- cursor(10,10), sound(50,400).
fine:- write("......fine prova").