home *** CD-ROM | disk | FTP | other *** search
- /*
- Copyright (c) 1986, 90 by Prolog Development Center
- */
- include "ch19ex03.pre"
-
- predicates
- action(integer,integer)
- nondeterm repeat
- rxdir(shcom)
-
- clauses
-
- repeat.
- repeat:- repeat.
-
- rxdir(direntry(Name,Hour,Min,Sec,Year,Month,Day,Size)):- !,
- writef("%13 %:%:%\t%:%:%\t% bytes\n",
- Name,Hour,Min,Sec,Year,Month,Day,Size).
- rxdir(_).
-
- action(1,H):- !,
- write("Enter file spec -> "),
- readln(FSpec),
- msgsend(shcom,H,dir(FSpec)),
- repeat,
- msgrecv(shcom,_,Ans),
- rxdir(Ans),
- Ans = eoj(), !.
- action(2,H):- !,
- write("Enter file name -> "),
- readln(FNam),
- msgsend(shcom,H,copy(FNam)),
- msgrecv(shcom,_,Ans),
- Ans = contents(FContents),
- file_str(FNam,FContents).
- action(_,_).
-
- goal
- msgopen("\\pipe\\rsh",Handle,10000,100),
- msgsetwait(1000), % 10 secs
- repeat,
- write("Enter 0:quit; 1:dir; 2:copy file -> "),
- readint(N), nl,
- action(N,Handle),
- N = 0,
- msgclose(Handle,purge,filter).