Текст, порубить на 40-символьные строки |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Текст, порубить на 40-символьные строки |
_JC_ |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Макс Репутация: 0 |
Помогите решить задачку!
Дано: текст на русском языке. Задане: переформатировать текст так, чтобы длина любой строки не превосходила 40 символов.(Выравнивать по правому краю не требуется). Спасибо заранее! |
volvo |
Сообщение
#2
|
Гость |
_JC_, поиском пользоваться когда-нибудь будем?
Разбить текст на строки |
Shura |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 136 Пол: Мужской Реальное имя: Александр Репутация: -2 |
Думаю, можно сделать так:
Открываем исходный файл для чтения, и новый - для записи (в конце старый удаляем, а новый переименовываем по имени старого). А дальше, считываем слова из исходного файла и записываем их в новый. Причем если при записи нового слова в очередную строку нового файла, длина строки превышает сорок, то НЕ дописываем это слово на этой строке - переносим на следующее. -------------------- Старайтесь восполнять пробелы в области незнания! ;-D
|
_JC_ |
Сообщение
#4
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Макс Репутация: 0 |
Спасибо большое прости что не воспользовался поиском!
У меня появился вопрос, а можноли сделать так что бы вводишь текст с клавиатуры и он разбивается по 40 символов в строку? Если да то ты не мог бы сказать как это сделать??? |
klem4 |
Сообщение
#5
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
объяви s : string[40], больше сорока ты в нее не запишеш, но все лишнее просто исчезнет, еще можешь вводить строку по символьно.
можно как-то на подобии вот этого, только наприер реализовать это как ф-ю, которая еще будет возвращать кол-во строк : uses crt; можно обойтись и без массива и например сразу записывать строку в файл. Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
Сообщение
#6
|
Гость |
klem4, а проверять на нажатие "расширенной" клавиши не надо? А то если юзер нажмет клавишу "Стрелка вверх", то в строке появятся символы #0 и "H" ...
|
klem4 |
Сообщение
#7
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
исправил вроде
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
_JC_ |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Макс Репутация: 0 |
А почему каждый символ воспринимается только со 2-ого нажатия можно ли это исправить? И как сделать чтобы он переносил не на серидине слова а его целиком если оно не влазит в строку???
|
klem4 |
Сообщение
#9
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата(_JC_ @ 13.10.2005 17:01) А почему каждый символ воспринимается только со 2-ого нажатия можно ли это исправить? И как сделать чтобы он переносил не на серидине слова а его целиком если оно не влазит в строку??? не заню, у меня воспринимает с первого нажатия нормально, а поповоду второго ... мне кажется ты не понял, тут осуществляется ввод текста следующим образом : начинаешь ввод, если ввел 40 символов, то начинается заполнение второй строчки , после ее заполнения следует третья и т.д. или же весь процесс останавливается при нажатии ESC. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
_JC_ |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Макс Репутация: 0 |
Volvo мщжет ты мне подскажешькак мне сделать эту задачу???
|
klem4 |
Сообщение
#11
|
Perl. Just code it! Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Цитата переносил не на серидине слова а его целиком и как ты себе это представляешь при твоей постановке задачи ?!? ты же сказал что тебе нужено сокращать строку до 40 символов !? В этом случае вполне вероятно что какое-либо слово обрубится... Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
_JC_ |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Макс Репутация: 0 |
Да вероятно ты прав извини!
|
volvo |
Сообщение
#13
|
Гость |
Цитата(_JC_ @ 13.10.2005 15:01) как сделать чтобы он переносил не на серидине слова а его целиком если оно не влазит в строку??? Вот так: uses crt; |
_JC_ |
Сообщение
#14
|
Новичок Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Макс Репутация: 0 |
Извиняюсь за то что беспокою, но этот Му.....ЖИК сказал что нужно что бы текст был загружен из файла! Вобщем задача звучит так : загруженый текст из файла разбить на строки не длиннее 40 символов! Поможите??? Спасибо!
|
volvo |
Сообщение
#15
|
Гость |
_JC_, приводим задачу к уже решенной :D :
uses crt; P.S. Это будет работать, когда весь текст забит в файле в одну строку. Если есть символы #13 (перевод строки), то нужно будет их соответствующим образом обрабатывать... Тестировалось на файле: Цитата start finish end begin end begin start finish end begin end begin start finish end begin end begin start finish end begin end begin |
Текстовая версия | 4.10.2024 18:58 |