Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Oleg 17.11.2004 13:39
Не пиннайте строго, я делал для себя - мне это необходимо ;)@main[] # Создаём хешь указывающий в какой строке сколько символов должно быть # Счёт идёт по человеческим правилам, 1-ая строка = 1 # $._default устаналивать обязательно # Если все строки должны быть равны между собой можно сделать постл $hash_string_lengch(20) $hash_string_lengch[ $._default(20) $.1(12) $.2(13) $.3(15) $.4(19) $.5(25) $.6(27) $.7(35) $.8(70) ] $result[^wsplit[Это строка которую будем дробить на более короткие строки длинной по двадцать символов, надеюсь вам пригодится. Слова с большим количеством символов дробиться небудут, а будут занимать строку целиком. например лфдыорадфоыврафлдоыравылфдравдфыолавр. И ещё, чуть не забыл, когда будете считать символы НЕ считать перевод строки как один из символвов;$hash_string_lengch;<br/> ]] # разбиение строки на строки с определённым количеством символов # Вызывать следующим образом # ^wsplit[строка которую требуется разбить на строки;требуемое количество символов в строке;символ перевода строки по умолчанию энтер] @wsplit[str;symvols_in_string;perevod_stroki][counter;str;symvols_in_string;perevod_stroki;string_counter] # Сделано для возможности задать длинну каждой строки отдельно ^if($symvols_in_string is hash){}{$symvols_in_string[$._default[$symvols_in_string]]} ^if(!def $perevod_stroki){$perevod_stroki[ ]} # разбираем полученную строку на слова $str[^str.split[ ;v]] $string_counter(1) # перебираем полученную таблицу ^str.menu{ # Сохраняем строку в переменную чтобы можно было посчитать количество символов в переменной $str_tmp[$str.piece] # Считаем количество символов в переменной $num_symvols(^str_tmp.length[]) # Считаем количество символов в строке где 1 - пробел $counter($counter+($num_symvols+1)) # Если количество символов не болше определённого то добавляем слово к строке, если больше то обнуляем счётчик прибавляем к нему количество символов последнего слова, ставим перевод строки и вставляем слово ^if($counter > ($symvols_in_string.$string_counter+1)){ ^if($counter == ($num_symvols+1)){ # Вставляем слово несмотря на то что оно больше заданного лимита, а заним перевод строки $result[${result}$str.piece^if(def $result){$perevod_stroki}] $counter[0] }{ # Вставляем перевод стоки, а затем слово $result[${result}^if(def $result){$perevod_stroki}$str.piece] # Меняем значение счётчика тк начинаем новую строку $counter($num_symvols+1) } # Счётчик номеров строк $string_counter($string_counter+1) }{ # Вставляем пробел и слово $result[$result^if(def $result){ }$str.piece] } }