level 5
duguhaoyuan
楼主
在数据库中事实段写法为[W,X,Y,Z],输入A,B,C,分别匹配X,Y,Z,如果成功,则输出W。
主语句如下:
clauses
onRightClick(_Source) = button::defaultAction:-
A=searchsex_ctl:getText(),
B=searchage_ctl:getText(),
C=searchshengao_ctl:getText(),
searchchilren::readItem(A,B,C),
nName:="",
searchchilren::sendName(),
outmessage_ctl:setText(""),
nName:=string::concat("姓名",nName),
outmessage_ctl:setText(nName).
其中:readItem(A,B,C):-
file::consult("child.fac",childDb),
item(T),
forntlist(T,A,B,C),------这个谓词见后
namestr(T),---------见后
fail.
readItem(_,_,_).
sendName():-
searchchild::getName(nA),-----这句没看懂,作者在searchchild类里没有声明,编译出错
nA:="",
retractFactDb(childDb).
forntlist([_|T],A,B,C):-
mathing(T,A,B,C).
namestr([X|_]):-
nA:=string::concat(nA,"\n"),
nA:=string::concat(nA,X).
allstr([]):-!.
allstr([X|T]):-
nA:=string::concat(nA," "),
nA:=string::concat(nA,X),
allstr(T).
mathing([],_,_,_):-!.
mathing([X|T],A,B,C):-
A=X,
mathing(T,B,C,A).
match([X|T],A):-
K=string::search(X,A),
K>=0,
nA:=string::concat(nA,X),
nA:=string::concat(nA,"\n"),
allstr(T),
nA:=string::concat(nA,"\n").
2012年03月01日 07点03分
1
主语句如下:
clauses
onRightClick(_Source) = button::defaultAction:-
A=searchsex_ctl:getText(),
B=searchage_ctl:getText(),
C=searchshengao_ctl:getText(),
searchchilren::readItem(A,B,C),
nName:="",
searchchilren::sendName(),
outmessage_ctl:setText(""),
nName:=string::concat("姓名",nName),
outmessage_ctl:setText(nName).
其中:readItem(A,B,C):-
file::consult("child.fac",childDb),
item(T),
forntlist(T,A,B,C),------这个谓词见后
namestr(T),---------见后
fail.
readItem(_,_,_).
sendName():-
searchchild::getName(nA),-----这句没看懂,作者在searchchild类里没有声明,编译出错
nA:="",
retractFactDb(childDb).
forntlist([_|T],A,B,C):-
mathing(T,A,B,C).
namestr([X|_]):-
nA:=string::concat(nA,"\n"),
nA:=string::concat(nA,X).
allstr([]):-!.
allstr([X|T]):-
nA:=string::concat(nA," "),
nA:=string::concat(nA,X),
allstr(T).
mathing([],_,_,_):-!.
mathing([X|T],A,B,C):-
A=X,
mathing(T,B,C,A).
match([X|T],A):-
K=string::search(X,A),
K>=0,
nA:=string::concat(nA,X),
nA:=string::concat(nA,"\n"),
allstr(T),
nA:=string::concat(nA,"\n").