4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
|
1 | |
Переписать один файл в другой, чтобы были удалены лишние пробелы и каждая строка содержала ровно 20 символов10.12.2016, 00:51. Показов 1390. Ответов 16
Метки нет Все метки)
(
Дан текстовый файл f. Переписать его содержимое в файл g таким образом, чтобы в нем были удалены лишние пробелы и каждая строка содержала ровно 20 символов.
Помогите пожалуйста, срочно надо сдать лабу, а времени слишком мало.
0
|
|
10.12.2016, 00:51 | |
Ответы с готовыми решениями:
16
Добавить равномерные пробелы, чтобы строка содержала ровно N символов
В текстовый файл вставить пробелы таким образом, чтобы каждая строка имела длину 80 символов |
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
||||||
15.12.2016, 22:04 [ТС] | 2 | |||||
Дан текстовый файл f. Переписать его содержимое в файл g таким образом, чтобы в нем были удалены лишние пробелы и каждая строка содержала ровно 20 символов.
Пока выходит только это :
0
|
428 / 359 / 129
Регистрация: 09.09.2011
Сообщений: 1,305
|
|
16.12.2016, 11:06 | 3 |
ну не верно
1. b2[0]:=char (ord(20)); откуда взяли? так оно могло работать в турбо-паскале, но это грязный хак и сейчас так не работает. кроме того этим кодом вы отрезаете остаток строки, но в задании не ясно, требуется ли именно это, или необходим перенос и до-заполнение строк следующими... Перенос по словам, или тупо по символам... 2. не записываете в файл ничего. по идее b2 нужно писать в файл. я бы делал так - зачитал бы весь файл в стринг-лист/"одну строку" и обрабатывал. Или читал по 1 символу из файла и конечными автоматами обрабатывал. так же необходимо уточнить на счет файлов - может ли там быть кириллица? если да, то в какой кодировке?
0
|
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
|
17.12.2016, 22:45 [ТС] | 4 |
Kitayets, Главное кол-во символов в строке, только 20, то-есть "порубать" текст на строки в 20 символов. А язык не имеет значения.
0
|
Модератор
![]() |
||||||
17.12.2016, 22:57 | 5 | |||||
Добавлено через 1 минуту Или и вправду, нужно сохранить весь текст, перераспределив слова в файле по строкам. И сделав распределение слов по строке.
1
|
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
||||||
18.12.2016, 00:54 [ТС] | 6 | |||||
Вот, что написал на данный момент, программа работает, но не совсем корректно, пробелы лишние удаляет (второй подряд пробел считается лишним), но иногда удаляет нужные. И иногда удаляются нужные символы при переносе. Не могу понять с чем это связано.
0
|
Модератор
![]() |
|
18.12.2016, 01:11 | 7 |
Строки во FreePascal имеют внутренний формат, отличающийся от формата в TurboPascal. С ними нельзя работать так, как показано в строке 48. Эта операция делается
SetLength(b2, 20);
0
|
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
||||||
18.12.2016, 01:20 [ТС] | 8 | |||||
ошибка логического характера? просто у меня всё компилируется, но изначально был вариант сделать это через цикл
Изменил, по вашему совету, но результат совсем не изменился
0
|
Модератор
![]() |
|
18.12.2016, 01:27 | 9 |
Там много чего.
1. В строке 38 определяется l:=length(b1), в строках 40-42 модифицируется b1, в 43 на основе устаревшей l принимается решение. 2. строка 48 должна быть SetLength(b2, 20); Добавлено через 4 минуты И вы бы уточнили задачу. Вдруг вам нужно из Код
Строка из нескольких слов для демонстрации подхода к решению задачи. Код
Строка из нескольких слов для демонстраци и подхода к решению задачи.
1
|
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
|
18.12.2016, 01:30 [ТС] | 10 |
исправил. всё по старому
Добавлено через 1 минуту Если, решать задачу путем переноса слов, нужно их будет отделить от текста, а в рамках моей лабораторки это слишком сложно, так, что я думаю у меня попроще условие.
0
|
Модератор
![]() |
|
18.12.2016, 01:33 | 11 |
Тогда приводите тестовые наборы. Что даёте, что получаете, что ожидаете.
0
|
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
|
18.12.2016, 01:45 [ТС] | 12 |
Из:
Строка из нескольких слов для демонстрации подхода к решению задачи. Получить: Строка из нескольких слов для демонстраци и подхода к решению задачи. Получаю: Строка из нескольких подхода к решению задачи. Добавлено через 9 минут Из: Строка из нескольких слов для демонстрации Получить: Строка из нескольких Получаю: Строка из нескольких
0
|
Модератор
![]() |
|
18.12.2016, 01:47 | 13 |
Т.е. нужно выполнять перенос слов, а не усекать строки.
Добавлено через 52 секунды Тэг CODE под кнопкой '#'
0
|
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
||||||||||||||||||||||||||
18.12.2016, 02:10 [ТС] | 14 | |||||||||||||||||||||||||
Тест немного неудачный)
Из:
Добавлено через 5 минут Блин, теперь я понял чего вы от меня добиваетесь, будет ли перенос, либо же просто из строки будет удаляться лишние символы. Извиняюсь за дикий тупняк. Ладно, со строками, пускай просто лишнее удалиться, не буду заморачиваться. Не могу понять, что не так с пробелами? Она то не удаляет когда 1 в исходном варианте текста, то удаляет Добавлено через 11 минут Нашел очень глупую ошибку, потерял 1 пробел в этой строке
Теперь понял какие ошибки допустил, постараюсь в будущем так не ошибаться) Вот код программы, может пригодиться кому
0
|
4 / 4 / 6
Регистрация: 10.12.2016
Сообщений: 192
|
||||||
03.01.2017, 14:58 [ТС] | 15 | |||||
0
|
Модератор
9530 / 4858 / 3229
Регистрация: 17.08.2012
Сообщений: 15,202
|
|
07.01.2017, 17:31 | 17 |
Это возможно с вероятностью 1/20. То есть, в большнстве случаев, невозможно.
Sergey Chepets, а куда подевалось время? Потратили на иные цели?
Да, и нужно уточнить задание. Что именно считать лишними пробелами? Можно ли переносить слова, и, если можно, то нужно ли добавлять знак переноса в конце строки? Напротив, если нельзя разрывать слова, то следует вставлять какое-то количество пробелов в строку, так? Если да, тогда как поступать, если какое-либо слово содержит более 20 символов?
0
|
07.01.2017, 17:31 | |
Помогаю со студенческими работами здесь
17
В текстовый файл вставить пробелы таким образом, чтобы каждая строка имела длину 80 символов В текстовый файл вставить пробелы таким образом, чтобы каждая строка имела длину 80 символов В текстовый файл вставить пробелы таким образом, чтобы каждая строка имела длину 80 символов Скопировать текстовый файл построчно, чтобы в итоговом файле каждая строка содержала 30 литер кроме ";" Файлы: переформатировать текст, чтобы каждая строка содержала не более 30 литер и заканчивалась точкой
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |