1.5, NuINu (??), 22:34, 17/08/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
так клипсом и не пользуются в россии, потому что про руссификацию нет информации. взять ту же книгу Частикова Разработка экспертных систем. среда CLIPS там тоже прямо говориться что русского языка там нет и не будет.(хотя сама эта книжка на половину это всего лишь перевод документации клипса распространяемой бесплатно )) )
за юникод не возьмусь, попробоовать поддержать можно таким же способом (замените ru_RU.KOI8-R на ru_RU.utf8). но многобайтовый символы, могут вызвать проблему в парсере clipsа. надо тестировать. попробуйте если вы фанат юникода. я и в 21 веке пользуюсь кои8р и никак не страдаю. в данном контексте юникод может пригодиться для разработки ммм... полинациональных правил... хотя данный вопрос обычно решается по другому.
| |
1.7, Педант (?), 23:25, 24/08/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот только полной русификацией это не назовешь.
(deffunction гипотенуза (?a ?b)
Получив русскую гипотенузу обычно требуют "а почему deffunction, а не ЗадатьФункцию"? Не можешь? Фи...
| |
|
2.9, NuINu (??), 13:42, 19/12/2010 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
>> (bind ?результат (гипотенуза 3.0 4.0))
>> (printout t "гипотенуза = "
>> ?результат crlf)
>> )
>> (reset)
>> (run)
>> (exit)
>> URL:
>> Обсуждается: http://www.opennet.me/tips/info/2420.shtml
> Добавить библиотеку надо еще #include <locale.h>
странно, у меня этот инклюд делается в setup.h, вероятно разные версии клипса.
но если у кого не будет компилироваться, то да - надо.
| |
|
1.10, Ledi_J (ok), 12:52, 06/03/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
NuINu, нужна помощь человека разбирающегося в CLIPS.Можно с вами связаться через почту или icq?
| |
1.11, Ledi_J (ok), 12:54, 06/03/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
NuINu, нужна помощь человека разбирающегося в CLIPS.Можно с вами связаться через почту или icq? моя почта:julya--shka@yandex.ru
| |
1.12, NuINu (??), 20:31, 25/03/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
К сожалению когда руссифицировал клипс, я совсем забыл о сортировке, а вернее о сравнении строк. В указанном выше совете клипс учиться воспринимать русские буквы, но сортировать(сравнивать строки) правильно не может.
но исправить это можно весьма просто, заменив функцию сравнения строк strcmp(не работающую с текущей локалью) на функцю strcoll в модуле strngfun.c.
Я это сделал так, добавил после всех #include строку переопределения функции:
#define strcmp(s1, s2) strcoll((s1), (s2))
проверить можно простой программой:
#!/usr/local/bin/clips -f2
;;протестируем функцию сортировки строк
(deffunction string> (?a ?b)
(> (str-compare ?a ?b) 0)
)
(defrule main
=>
(bind ?list (create$ первый второй а елка ешка ёлка ёмкость третий четвертый аах ха хаа хам пятый шестой седьмой а восьмой восьмоой восьмый амма ам))
(printout t "Исходный список: " ?list crlf)
(bind ?list (sort string> ?list))
(printout t "Отсортированный список: " ?list crlf)
)
(reset)
(run)
(exit)
| |
1.13, Parallax (ok), 22:04, 03/05/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Здравствуйте!Добавил код
setlocale(LC_ALL, "ru_RU.KOI8-R");
setlocale(LC_NUMERIC, "C");
в файл в main.c, так же добавил строку #include <locale.h>, но после построения всего проекта запускаю исполняемый файл, а русские символы все равно не печатаются. Где я ошибся?может кто нибудь поправит?Я начинающий программист.
| |
|
2.14, NuINu (??), 20:44, 04/05/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Здравствуйте!Добавил код
> setlocale(LC_ALL, "ru_RU.KOI8-R");
> setlocale(LC_NUMERIC, "C");
> в файл в main.c, так же добавил строку #include <locale.h>, но после
> построения всего проекта запускаю исполняемый файл, а русские символы все равно
> не печатаются. Где я ошибся?может кто нибудь поправит?Я начинающий программист.
А какая у вас локаль в терминале? и в какой кодировке вы пишете программу? проверьте все, в моем варианте все должно быть в кои8
и еще вопрос, пусть русские буквы не печатаются, а программа ругается на плохие символы в программе?
| |
|
3.15, Parallax (ok), 11:33, 05/05/2011 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
>> setlocale(LC_ALL, "ru_RU.KOI8-R");
>> setlocale(LC_NUMERIC, "C");
>> в файл в main.c, так же добавил строку #include <locale.h>, но после
>> построения всего проекта запускаю исполняемый файл, а русские символы все равно
>> не печатаются. Где я ошибся?может кто нибудь поправит?Я начинающий программист.
> А какая у вас локаль в терминале? и в какой кодировке вы
> пишете программу? проверьте все, в моем варианте все должно быть в
> кои8
> и еще вопрос, пусть русские буквы не печатаются, а программа ругается на
> плохие символы в программе?
Упустил один момент - вы ведь, как я понял, имели ввиду консольную версию, а я ClIPSWin мучаю. Но все же я еще раз перекомпилировал, и теперь интересующий меня исполняемый файл ClIPSWin.exe понимает русские символы локали KOI8-R, но не печатает их. Жаль, приходится редактировать clp файл в текстовом редакторе и только после этого лоадить их в clips Было бы здорово внести изменения в исходный код интерфейса ClIPSWin, чтоб он научился печатать наш великий и могучий)
| |
|
4.16, NuINu (??), 18:16, 05/05/2011 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
>> кои8
>> и еще вопрос, пусть русские буквы не печатаются, а программа ругается на
>> плохие символы в программе?
> Упустил один момент - вы ведь, как я понял, имели ввиду консольную
> версию, а я ClIPSWin мучаю. Но все же я еще раз
> перекомпилировал, и теперь интересующий меня исполняемый файл ClIPSWin.exe понимает русские
> символы локали KOI8-R, но не печатает их. Жаль, приходится редактировать clp
> файл в текстовом редакторе и только после этого лоадить их в
> clips Было бы здорово внести изменения в исходный код интерфейса ClIPSWin,
> чтоб он научился печатать наш великий и могучий)
я с виндовсом не работаю, и действительно не знаю как там реализовать поддержку русского языка. насколько я слышал там некорректно работает функция isalpha, что бы она кооректно работала надо преобразовыать char в unsigned char. Но это все слухи, вопросами програмирования в виндовс я не занимаюсь )
буквы в кои8р не печатает не сам клипс а терминал в виндовс, возможно он не знает такой кодировки, возможно он должен печатать билеберду(отчасти)чтобы уж совсем ничего не печатал, сомневаюсь, хотя все может быть.
как я помню тамошний терминал работает в cp866. если есть желание поэксперементируйте поменяйте локаль на ru_RU.CP866 или ru_RU.CP1251(они в виндовсе вроде как то по другому называются)суть в том что бы поставить досовскую или виндосовскую кодировку, в зависимости от того в какой терминал вы хотите выводить результаты работы программ, и в какой кодировке вы собираетесь писать программу,
собственно я не знаю какие в виндовсе имеются локали и как их там вообще посмотреть )
только соотвественно не забудьте менять кодировку текста в самой программе.
| |
|
|
|
1.17, Алексей Винокуров (?), 11:18, 16/07/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Я аналогичным образом модифицировал clipswin, теперь он поддерживает кириллицу в формулировках фактов и правил. Но вообще, более перспективно использовать CLIPS+JNI, там кроме графического интерфейса появляется возможность создания мультиязычных и мультиплатформенных экспертных систем. Кому интересно, пишите.
| |
|
2.18, NuINu (??), 23:26, 16/07/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Я аналогичным образом модифицировал clipswin, теперь он поддерживает кириллицу в формулировках
> фактов и правил. Но вообще, более перспективно использовать CLIPS+JNI, там кроме
> графического интерфейса появляется возможность создания мультиязычных и мультиплатформенных
> экспертных систем. Кому интересно, пишите.
Алексей, если Вам не трудно, выложите точно как вы делаете это в винде, некотрым людям это надо.(фанатам винды). На счет мультиязычных версий не знаю ))). На самом деле русский язык нужен в экспертной системе для эксперта, чтобы удобно на его естественном языке была возможность писать правила, а как правило это всегда моно язычный проект. да что там говорить, есть рекомендация создавать экспертную систему пользуясь знаниями одного эксперта, иначе задача согласования знаний нескольких экспертов просто не решается. вот. а дальше язык интерфейса с пользователем уже можно создавать любой, используя обычные трансляции. Так что на мой взгляд это не очень акуально, хотя почему бы и нет.
| |
|
|
2.20, Nikphil87 (?), 11:20, 13/07/2012 [^] [^^] [^^^] [ответить]
| +/– |
Мне тоже очень нужно разобраться с русификацией в виндоус, может кто-нибудь подскажет ?
| |
|
1.21, Rydo (?), 17:02, 05/09/2012 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Тема Актуальна) Был бы очень призналетелн, если бы добрый человек выложил пошаговую инструкцию со скриншотами для сбилдера под виндой.
Заранее спасибо!
| |
1.22, renegator (?), 11:21, 30/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Русификацию выполнял на MS VS2008
1. Файл WinMain.c
добавляем строки:
Хидер #include "locale.h"
Перед вызовом InitializeEnvironment вставляем строку
setlocale(LC_ALL,"RUS");
2. Файл Display.c
Заменяем все имена шрифтов "Courier New" на "Courier New Cyr"
Здесь же заменяем строки:
char *buffer unsigned на char *buffer
char text[2] на unsigned char text[2]
text[0] = (char) wParam; на text[0] = (unsigned char) wParam;
3. Файл CORE\commline.c - заменяем все переменные типа char на unsigned char
| |
1.25, renegator (?), 13:15, 27/06/2016 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Недостаточно. Без изменения кода нельзя вводить русские символы в правила - там сломается на вызове макросов из ctype.h
| |
1.26, Серж (??), 10:39, 21/03/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Скажите, а почему при русификации CLIPS 6.3 для Windows(проект CLIPSIDE) ругается на мягкий знак?
(bind ?результат (гипотенуза 3.0 4.0))
VVVVV
...резул <<<unprintable char...
Можно это как-то исправить?
| |
|