Получить вывод CLIPS/Jess в строковой переменной

я интегрировал jess с java в netbeans. Я хочу получить доступ к выводу в строковой переменной.

когда я (запускаю) файл .clp и даю ему ввод, он показывает мне вывод, но я хочу получить этот вывод в строковой переменной. Как я могу это сделать?? пожалуйста помоги. это мой код файла .clp.

(deftemplate problem
(multislot name)
(slot symptom))

(deffacts probelms
(probelm (name (create$ "Air filter"  "fuel injector problem" "fuel pressure regualtor")) 
    (symptom Black-Smoke))
    )

(defrule reading-input
=>
(printout t "Enter the symptom your car Shows: " )
(assert (var (read))))

(defrule checking-input
(var ?symptom)
(probelm  (symptom ?symptom1)(name $?name1))
(test (eq ?symptom ?symptom1)) 
 =>
(printout t "Problems can be " $?name1 crlf))

код для запуска этого в java

 public static string path="C:\Users\Taimoor Mirza\Documents\car.CLP";  
  Rete r=new Rete();
   r.batch(path);
   r.reset();
   r.run();

это работает хорошо, и когда я вхожу в Black-Smoke , это дает мне возможные симптомы при запуске exe. Я хочу получить эти симптомы в строке. как я могу получить этот результат в строке???


person hassan mirza    schedule 14.03.2017    source источник
comment
Это зависит от того, как вы запускаете CLP из своего Java-приложения. Одна из возможностей — использовать объект StringBuilder в файле CLP для накопления выходных данных.   -  person laune    schedule 14.03.2017
comment
Я обновил свой вопрос. пожалуйста помоги. Я жду вашего ответа.   -  person hassan mirza    schedule 15.03.2017


Ответы (2)


Настройте Writer и попросите Джесс использовать его:

Writer writer = new StringWriter();
rete.addOutputRouter( "t", writer );
// run Jess writing to router "t"
System.out.println( writer.toString() );
person laune    schedule 15.03.2017

Посмотрите раздел о маршрутизаторах ввода-вывода в руководстве по ссылке: http://www.jessrules.com/jess/docs/71/library.html#routers . Используйте java.io.StringWriter в качестве выходного маршрутизатора, а затем извлеките текст из файла StringWriter.

person Ernest Friedman-Hill    schedule 14.03.2017
comment
Сэр, я обновил свой вопрос, пожалуйста, помогите мне. Я жду вашего ответа. - person hassan mirza; 15.03.2017