parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Maxx 21.04.2016 00:52

Вариантов много, например так
@get_substr[text;max_length][t;length]
$result[]
$t[^text.split[ ;lv]]
$length(0)
^t.menu{
	^if(($length + ^t.piece.length[] + 1) > $max_length){
		^break[]
	}
	^if(!$length){
		$result[$t.piece]
		$length(^t.piece.length[])
	}{
		$result[$result $t.piece]
		$length($length + 1 + ^t.piece.length[])
	}
}
$result[^result.trim[right; .,]]
Еще можно регулярками, как рекомендует Андрей

Но всё это плохо, потому что лексику вы никаким алгоритмом не обработаете и фразы будут постоянно отрезаться очень глупо и некрасиво, например сразу после предлога или союза. Еще могут попадаться длинные слова, например сложно-составные, существенно "укорачивающие" полученную строку.

Такими вещами, как поиск оптимального сокращения должен заниматься сам человек.