| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Oleg 16.11.2004 20:24 / 16.11.2004 20:27
@main[]
$result[^string_drobilka[Это строка которую будем дробить на более короткие строки длинной по двадцать символов, надеюсь вам пригодится. Слова с большим количеством символов дробиться небудут, а будут занимать строку целиком. например лфдыорадфоыврафлдоыравылфдравдфыолавр. И ещё, чуть не забыл, когда будете считать символы незабывайте считать перевод строки как один символ;20;<br/>
]]
# разбиение строки на строки с определённым количеством символов
# Вызывать следующим образом
# ^string_drobilka[строка которую требуется разбить на строки;требуемое количество символов в строке;символ перевода строки по умолчанию энтер]
@string_drobilka[str;symvols_in_string;perevod_stroki]
^if(!def $perevod_stroki){$perevod_stroki[
]}
# разбираем полученную строку на слова
$parts[^str.split[ ;v]]
# Обнуляем счётчик
$counter(0)
# Очищаем строку
$out_string
# перебираем полученную таблицу
^parts.menu{
# Сохраняем строку в переменную чтобы можно было посчитать количество символов в переменной
$str_tmp[$parts.piece]
# Считаем количество символов в переменной
$num_symvols(^str_tmp.length[])
# Считаем количество символов в строке где 1 - пробел
$counter($counter+(1+$num_symvols))
# Если количество символов не болше определённого то добавляем слово к строке, если больше то обнуляем счётчик прибавляем к нему количество символов последнего слова, ставим перевод строки и вставляем слово
^if($counter > $symvols_in_string){
^if($counter == ($num_symvols+1)){
# Вставляем слово несмотря на то что оно больше заданного лимита, а заним перевод строки
$out_string[${out_string}$parts.piece^if(def $out_string){$perevod_stroki}]
# Обнуляем счётчик тк начинаем новую строку
$counter[0]
}{
# Вставляем перевод стоки, а затем слово
$out_string[${out_string}^if(def $out_string){$perevod_stroki}$parts.piece]
# Меняем значение счётчика тк начинаем новую строку
$counter($num_symvols+1)
}
}{
# Вставляем пробел и слово
$out_string[$out_string^if(def $out_string){ }$parts.piece]
}
}
# Выводим результат
$result[$out_string]