📄 callprocess.pro
字号:
/*****************************************************************************
Copyright (c) Prolog Development Center A/S
******************************************************************************/
implement callProcess
open core
constants
className = "callProcess".
classVersion = "".
clauses
classInfo(className, classVersion).
clauses
run():-
console::init(),
UseExe = useExe::new("comp.exe"),
Input = UseExe:getFromProcessStream(stream::ansi(ansi())),
Output = UseExe:getToProcessStream(stream::ansi(ansi())),
UseExe:run(),
echo(Input),
stdIO::write("\n"),
Output:write("FirstFile.txt\r\n"),
Output:flush(),
echo(Input),
stdIO::write("\n"),
Output:write("SecondFile.txt\r\n"),
Output:flush(),
echo(Input),
stdIO::write("\n"),
Output:write("\r\n"),
Output:flush(),
echo(Input),
stdIO::write("\n"),
Output:write("N\r\n"),
Output:flush(),
echo(Input),
UseExe:close(),
stdIO::write("Good bye\n").
class predicates
echo : (inputStream).
clauses
echo(Input) :-
waitForInput(Input),
outUntilEos(Input).
class predicates
waitForInput : (inputStream).
clauses
waitForInput(Input) :-
Input:endOfStream(),
!,
programControl::sleep(shortDelayInMs),
waitForInput(Input).
waitForInput(_Input).
class predicates
outUntilEos : (inputStream).
clauses
outUntilEos(Input):-
Input:endOfStream(),
!.
outUntilEos(Input):-
stdIO::write(Input:readChar()),
outUntilEos(Input).
constants
shortDelayInMs = 10.
end implement callProcess
goal
mainExe::run(callProcess::run).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -