Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sikoz 22.02.2011 10:53
@wisetrim[str;len;match][locals] ^if(^str.length[]>$len){ #что считать концом. оставьте только точку и будут резаться предложения $breakers[^s2h[,+.+:+!+ +;+]] #убираем html? Сильно замедляет. ^if(def $match){$str[^str.match[(<[^^>])([^^>]*>|^$)][ig]{}]} $str1[^str.left($len)] #зачем работать со всем текстом, если максимальная длина слова - 23 буквы? $str2[^str.mid($len;23)] $sadd[] ^for[i](0;23){$tmp[^str2.mid($i;1)]^if(def $breakers.$tmp){^break[]}{$sadd[${sadd}$tmp]}} $preresult[${str1}$sadd] #об успешной обрезке сообщаем многоточием ^if(^preresult.length[]<^str.length[]){$multipoint[...]} $result[${preresult}$multipoint] }{$result[$str]} #вместо так и не реализованного ^hash::create[string] @s2h[str;div;def0][locals;result] ^if(!def $div){$div[ ]}^if(!def $def0){$def0(1)} ^if($str is hash){$result[$str]}{ $tmp[^str.split[$div;v]] $tmph[^tmp.menu{^if(def $tmp.piece){$.[$tmp.piece]($def0)}}] $result[^if($tmph is hash){$tmph}{^hash::create[]}] }