|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
Разделить одну строку на несколько28.01.2015, 12:54. Показов 2280. Ответов 6
Метки нет (Все метки)
Доброго времени суток. Помогите пожалуйста с такой задачкой: необходимо разбить одну длинную строку на несколько небольших, по такому принципу - Если строка из 280 символов, то оставляем как есть, если больше то начинаем делить. При делении, сначала первые 250 символов стразу оставляем и после 250 начинаем искать Точку или !, после того как нашли, выполняем некоторое действие (например записываем в Мемо), дальше, если остаток меньше 280, записать в Мемо как 2-ю строку, если больше, то по такому же принципу, 250 сразу, и до первой точки или ! ... и т.д.
Суть в том, чтобы каждая строка была не больше 280 символов. Добавлено через 3 часа 29 минут еще один момент, если в случае, когда в промежутке от 250 до 280 не встречается точка ! или ? , тогда до первого пробела
0
|
|
| 28.01.2015, 12:54 | |
|
Ответы с готовыми решениями:
6
Несколько предложений, расположенных в строку, разделить при помощи определителя конца строки
Разделить одну строку на несколько частей одним махом |
|
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
|||||||||||||||||||
| 28.01.2015, 14:06 | |||||||||||||||||||
|
Да у тебя код то простой, только условий много описывать, я тебе код накидал с "коленки"- ты его некопируй конечно это просто псевдокод, просто пример.
0
|
|||||||||||||||||||
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 28.01.2015, 14:40 [ТС] | |
|
NIKOLAYY, а что если строка будет из 290 символов ?
тогда Copy(stroka, 250, Length(stroka)) не сможет у остатка скопировать 250 символов. Должно быть условие сначала на проверку оставшихся символов. Т.е. после того, как первую строку мы определили, нужно узнать сколько еще символов осталось. А как это сделать, я пока не знаю ...
0
|
|
|
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
|
||
| 28.01.2015, 15:03 | ||
|
Если остаток отрицательный условие else то переходим к следующей строке или что там у тебя по плану задумано.
0
|
||
|
Заблокирован
|
|
| 29.01.2015, 00:32 | |
|
Самый простой способ это перебор.
Строка это массив. инициализируем счётчик длины строки. И понадобятся ещё переменные одна для позиции последнего знака препинания другая для для позиции последнего пробела. третья позиция начала строки четвёртая, четвёртая - позиция конца строки. сначала все переменные и счётчик сбрасываем в ноль и пошли перебирать символы попутно их считая. встретился знак препинания заносим его позицию в переменную встретился пробел, заносим его позицию в свою переменную. При этом счётчик символов сравнивается с длинной строки. если произошло превышение, смотрим где у нас последний знак препинания или пробел. Это уже по условию алгоритма. То есть надо найти место разрыва строки. Ну а после этого... Проще сделать набор в дополнительную, так называемую сборочную строку. у нас есть позиция начала строки и позиция конца строки. По этим данным переносим все символы с сборочную строку. В конце ставим два символа конца строки (DA) и запоминаем позицию конца сформированных строк. Для этого нужна своя переменная. Ну вот, одна строка внесена. позиция место где окончилась строка в анализируемой строке присваивается переменной начала строки. И с этой же позиции анализ продолжается. всё повторяется. Находится новое место разрыва. Новая строка заносится в сборочную строку. ставится признак конца строки. Переменные получают новые значения и всё повторяется до тех пор пока строка не закончится. Ну а потом сборочную строку можно переправить куда нужно, например в memo. И тогда весь текст автоматически разобьётся на строки.
0
|
|
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|
| 29.01.2015, 02:09 | |
|
0
|
|
|
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
|
|
| 29.01.2015, 08:08 [ТС] | |
|
northener, Долго описывать всю суть))
0
|
|
| 29.01.2015, 08:08 | |
|
Помогаю со студенческими работами здесь
7
Разделить одну таблицу на несколько Разделить столбец на два с переносом данных в одну строку! Разделить строку на несколько частей
Как лучше всего разделить строку на несколько подстрок? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|