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