xfile3
/* file6.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 Nome =string Indice =string
predicates azione termine(integer) elabora(integer) scelta(integer) richiesta(integer) stampa(string) 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):- write("scrivi nome del file che cerchi\n"), write("es. nomefile.ext \n"), readln(Nome), /* mostra sempre indice */ concat("A:/file/",Nome,Indice), dir("A:/file","*.pro",Programmi),stampa(Programmi).
richiesta(3):- write("scrivi nome del file che cerchi\n"), write("es...nomefile.ext "), readln(Nome), concat("A:/file/",Nome,Indice), existfile(Indice), /* indice solo se file c'*/ write("file richiesto trovato \n"), sound(100,500), dir("A:/file","*.*",Programmi),stampa(Programmi).
richiesta(4):- dir("//","*.*",Programmi),stampa(Programmi).
stampa(S):- cursor(10,10), write("premi ESC"), sound(100,800), display(S).
fine:- write("......fine prova").