The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Русификация языка построения экспер..."
Отправлено NuINu, 25-Мрт-11 20:31 
К сожалению когда руссифицировал клипс, я совсем забыл о сортировке, а вернее о сравнении строк. В указанном выше совете клипс учиться воспринимать русские буквы, но сортировать(сравнивать строки) правильно не может.
но исправить это можно весьма просто, заменив функцию сравнения строк 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)

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру