![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| library |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
Здравствуйте, Ув. форумчане. Помогите, пожалуйста, придумать алгоритм.
Есть большой текст, нужно его разбить на куски, скажем, по 3000 символов, но так что бы не обрываться посредине слова, а заканчивать абзац до конца, и между кусками вставлять определённые строки. Вот с первой частью проблемы. Это сообщение отредактировал(а) library - 3.9.2009, 15:30 |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
html текст?
А если он только начался и там еще 50 предложений? -------------------- ![]() |
|||
|
||||
| library |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
тогда в меньшую сторону, но не менее 2000 символов, а если не получается то уж доконца 50 предложений
текст не html Это сообщение отредактировал(а) library - 3.9.2009, 15:05 |
|||
|
||||
| icewind |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 11.4.2009 Где: Ростов-на-Дону Репутация: 20 Всего: 20 |
А в каком формате? Определять начало нового абзаца нужно при появлении символа табуляции?
-------------------- ![]() |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
прежде, чем переходить к реализации на каком-либо языке, сначала надо составить алгоритм. в частности, формализовать используемые понятия - абзац, слово, символ. ведь программу придется объяснять языку программирования, а он не знает, что такое абзац. |
|||
|
||||
| Kallisto |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 20.4.2007 Репутация: -3 Всего: -1 |
||||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
Kallisto, прочитайте сначала вопрос.
Ипатьев правильно говорит, сначала нужно конкретизировать все понятия, чтобы было по чем алгоритм строить |
|||
|
||||
| library |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
Текст - книга состаящая из абзацев.
Абзац - некоторое количество предложений, разделённых строчкой или несколькими Слово, символ - думаю понятно. |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
ну, если не обращать внимание отсутствие определения "предложения", то теперь информации достаточно.
если задача сводится к разбивке по 1+ пустых строк, то она решается достаточно просто. а "определенные строки" между кусками - это реклама? |
|||
|
||||
| library |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
Нет не реклама, программа делается в образовательных целях, строки будут передавать определённые данные другим блокам программы. |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
а на сколько можно верить тому, что текст действительно имеет этие самые строки через каждые 2000-3000 символов?
|
|||
|
||||
| library |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
верить можно, что в пределах 10000 символов, хоть один абзац да кончится, ну а если нет будет один 20000 символов. |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
Вы хоть определитесь... |
|||
|
||||
| library |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 28.3.2008 Репутация: нет Всего: нет |
Смысл такой вобщем, текст делится на абзацы и точка. И неважно побольшому счёту какой длины эти абзацы, путь 100 символов, пусть 20000, делиться они должны при достижении 3000 + до конца текущего обзаца, думаю так ясно. |
||||
|
|||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
Так? -------- Если не понятно, поясню. Код заменяет разделитель абзацев (в данном случае "\n" на "<br />"), только если размер текста перед разделителем и после предыдущего разделителя не меньше 15 символов. В вашем случае нужно поставить 3000 и заменить разделитель абзацев на подходящий Это сообщение отредактировал(а) NewDima - 3.9.2009, 17:27 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |