汉化多窗口编辑器
用过Turbo Prolog的人都知道它有一个非常精巧的编辑器,怎样把这个编辑?BR>
程序移植到用户程序中哪?Turbo Prolog 2.0提供的谓词edit可以帮助办到这?BR>
一点,若是非Turbo Prolog用户要使用它,则有一定的困难。
我用中西文Turbo Prolog 2.0编写了一个小程序Turbo Editor(简写为CTE)?BR>
,旨在挖出Turbo Prolog的编辑器,供编辑其他语言的源程序或文件。CTE.PRO?BR>
经过编译之后,可在中西文操作系统下直接运行,为其他程序语言的使用者提?BR>
供了一个良好的编辑器。CTE的使用格式为:
CTE [<源文件名>]
CTE的内部命令基本上与WORDSTAR相同,其扩展命令在提示行显示,用CTE?BR>
编辑源程序比用WORDSTAR方便得多。CTE有两个扩展命令,功能非常强大。其一?BR>
是外部拷贝命令,使用这个命令可以打开一个外部文件,有选择地从其中拷贝?BR>
一块文本;其二是辅助编辑器命令,在编辑一个文件的同时,你可以打开另一?BR>
个文件进行编辑。还有一些其他扩展命令,使得CTE使用起来得心应手。源程序?BR>
清单如下:
predicates
repeat
command_line(symbol)
run
_exit
true1(char)
exist_file(symbol,string)
clauses
repeat.
repeat:-repeat.
command_line(Com_lin):-
comline(Com_lin1),
Com_lin1="",
Com_lin="WORK.DOC";
comline(Com_Lin1),
upper_lower(Com_Lin,Com_lin1).
run:-
snowcheck(on),
makewindow(2,15,0,"",0,0,25,80),
cursor(24,0),
write("F1-Help F2-Save F3-Load ESC-F10-EXIT F7-XCOPY F8-XEDIT"),
makewindow(1,14,15,"Turbo Editor",0,0,24,80,1,-1,"++++-|"),
command_line(File_name),
repeat,
cursorform(1,14),
exist_file(File_name,Input1),
edit(Input1,Text,"",File_name,"",0,"TE.HLP",1,1,1,1,_,_),
file_str(File_name,Text),
_exit,
removewindow,
removewindow,
makewindow(1,14,0,"",0,0,25,80),
removewindow.
exist_file(File_name1,Input_str):-
not(existfile(File_name1)),
Input_str="",!;
? existfile(File_name1),
file_str(File_name1,Input_str).
_exit:- makewindow(3,31,113,"",3,3,3,24,1,-1,"++++-|"),
write("Are you sure (y/n)?"),
readchar(Ans),
removewindow,
upper_lower(Ans,Ans2),
true1(Ans2).
true1(Ans1):-
Ans1='y';
beep,
fail.
goal
run.
©董占山Zhanshan Dong
|