![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
unnamed_499 |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Реальное имя: Денис Репутация: ![]() ![]() ![]() |
Имеется текстовый файл (файловая переменная объявлена, как TEXT). Длина строки фиксирована - 50 или 70 символов. Используется графический режим. Необходимо расставить переносы в этом текстовом файле.
![]() |
![]() ![]() |
Бродяжник |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не до конца ясно, что находится в текстовом файле. Текст, уже разбитый на строки фиксированной длины? Тогда зачем переносы? Текст, разбитый на строки произвольной длины? Есть ли в нем уже какие-либо переносы? И могут ли они там быть? На каком языке текст (если это вообще текст на человеческом языке)? Нужно ли делать выравнивание текста по обоим краям? Есть ли в тексте абзацы, и как они выделены? Какую роль во всем этом играет графический режим?
Общие идеи могут быть следующие: Пишем функцию, позволяющую считывать текст из файла по словам, игнорируя разбиение на строки и убирая избыточные пробелы. Потом читаем очередное слово из файла и смотрим, можно ли его прибавить к строке вывода, или уже нужно переносить? Если можно прибавить, прибавляем. Если уже нельзя, смотрим, можно ли его разорвать на две части. Если можно, прибавляем к строке вывода первую половинку слова и знак переноса, и пишем строку вывода в выходной файл, после чего инициализируем строку вывода второй половинкой. Если слово разорвать нельзя, тогда пишем накопленную ранее строку вывода в файл и инициализируем ее непоместившимся словом. И так, пока не прочитаем весь файл. Если нужно выравнивать по краям, то перед записью строки вывода в файл проверяем ее длину и при необходимости раздвигаем слова. Задача-то не такая уж тривиальная, если делать ее грамотно. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 10:52 |