data5

/* data5.pro */
/* gestione database e menu */
/* openwrite openappend openmodify */
/* nome database prefissato RUBRIX.dba */
/* DISPLAY  RENAME  DIR  */
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)
scelta(integer)
scelta1(integer)
scelta2(integer)
scelta3(integer)
elabora(integer)
azione1
azione2
azione3
azione4
azione5
azione6
azione
termine(integer)
goal finestra,azione.
clauses
  finestra:-
  makewindow(1,5,1,"",1,1,20,70),
  disk("A:").
  
  azione:-
  clearwindow,
  menu(10,40,[openwrite,openappend,openmodify,
  display,rename_delete,dir,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).
  elabora(6):-Scelta(6).
  termine(7).
  termine(0).
  Scelta(1):-azione1.
  Scelta(2):-azione2.
  Scelta(3):-azione3.
  Scelta(4):-azione4.
  Scelta(5):-azione5.
  Scelta(6):-azione6.
  Scelta(7):-fine.
  
  azione1:-
   clearwindow,
   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,
       disk("A:"),
       write("scrivi primo elemento file \n"),
       readln(Dato),
       openwrite(filexy,"rubrix.dba"),
       writedevice(filexy),
       write(Dato,"\n"),
       closefile(filexy),
       azione1.
   scelta1(2):-write("ritorno a menu principale\n"),
      azione.                                        
      
   azione2:-
      clearwindow,
      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),
      disk("A:"),
      openappend(filexy,"rubrix.dba"),
      writedevice(filexy),
      write(Dato,"\n"),
      closefile(filexy),
      beep,azione2.
      scelta2(2):-write("ritorno a menu principale\n "),
      beep,azione.
      
 azione3:-
 clearwindow,
 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.     
   
   azione4:-
      write("visualizza file.dba in memoria \n"),
      file_str("rubrix.dba",DATAXY),
      display(DATAXY),azione.
      
   azione5:-
      disk("A:"),
      renamefile("rubrix.dba","rubriy.dba"),
      deletefile("rubrix.dba"),
      clearwindow,azione.
      
   azione6:-
      disk("A:"),
      write("directory corrente \n"),
      write("per uscire premi ENTER \n"),
      sound(100,500),
      dir("A:","*.*",INDICE),
      clearwindow,
      azione.
   fine:-
   clearwindow,
   write("fine prove\n"),beep.
             

 


rubrix.dba
merlo
rame
cloro
sodio