unnamed_499
19.04.2006 19:47
Имеется текстовый файл (файловая переменная объявлена, как
TEXT). Длина строки фиксирована - 50 или 70 символов. Используется графический режим. Необходимо расставить переносы в этом текстовом файле.
Вот и всё. Пожалуйста, помогите.
Бродяжник
19.04.2006 20:07
Не до конца ясно, что находится в текстовом файле. Текст, уже разбитый на строки фиксированной длины? Тогда зачем переносы? Текст, разбитый на строки произвольной длины? Есть ли в нем уже какие-либо переносы? И могут ли они там быть? На каком языке текст (если это вообще текст на человеческом языке)? Нужно ли делать выравнивание текста по обоим краям? Есть ли в тексте абзацы, и как они выделены? Какую роль во всем этом играет графический режим?
Общие идеи могут быть следующие:
Пишем функцию, позволяющую считывать текст из файла по словам, игнорируя разбиение на строки и убирая избыточные пробелы.
Потом читаем очередное слово из файла и смотрим, можно ли его прибавить к строке вывода, или уже нужно переносить? Если можно прибавить, прибавляем. Если уже нельзя, смотрим, можно ли его разорвать на две части.
Если можно, прибавляем к строке вывода первую половинку слова и знак переноса, и пишем строку вывода в выходной файл, после чего инициализируем строку вывода второй половинкой.
Если слово разорвать нельзя, тогда пишем накопленную ранее строку вывода в файл и инициализируем ее непоместившимся словом.
И так, пока не прочитаем весь файл.
Если нужно выравнивать по краям, то перед записью строки вывода в файл проверяем ее длину и при необходимости раздвигаем слова.
Задача-то не такая уж тривиальная, если делать ее грамотно.
Попользуйся поиском по форуму. мне когда-то пришлось писать нечто подобное. Тут на форуме должно быть.
Вот кстати, может пригодится.
Расстановка переносов