![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
sandman |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 101 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вроде несложная задачка..
"В текстовом файле (размер до 600kb) удалить все символы перевода строки." А как подступиться не знаю.. Мозга не варит ![]() -------------------- Плавают разными стилями, тонут-одним (ц) Кирпичи
|
trminator |
![]()
Сообщение
#2
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Первое, что пришло в голову - читать из файла ReadLn'ом, а писАть Write'ом (правда, придется заводить для этого разные файлы, но я все равно не знаю способа именно изменять файл - умею или только писАть, или только читать
![]() -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
Ivs |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Перевод строки это если я не ошибаюсь символ #10. Так что мешает. Читай Read'ом символ, и если он не "символ перевода строки", то пиши в новый файл Writ'ом.
Ну а дальше удаляй старый и переименовывай новый. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
sandman |
![]()
Сообщение
#4
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 101 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Перевод строки это если я не ошибаюсь символ #10. Так что мешает. Читай Read'ом символ, и если он не "символ перевода строки", то пиши в новый файл Writ'ом. Ну а дальше удаляй старый и переименовывай новый. тогда имхо быстрее будет так, как написал trminator... -------------------- Плавают разными стилями, тонут-одним (ц) Кирпичи
|
Ivs |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Цитата тогда имхо быстрее будет так, как написал trminator... Нет, так будет неправильно. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
zx1024 |
![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: ![]() ![]() ![]() |
>sandman
Pascal делает то же самое (читает перевод строки), поэтому скорость зависит от реализации. >Ivs #10 #13 >Ну а дальше удаляй старый и переименовывай новый. Слишком долго, т.к. идёт обращение к винту. |
Ivs |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Цитата >Ivs #10 #13 . А я думал что это символы перевода строки и возврата корретки. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
Ivs |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Цитата >Ну а дальше удаляй старый и переименовывай новый. Слишком долго, т.к. идёт обращение к винту. Ваш вариант. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
zx1024 |
![]()
Сообщение
#9
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ivs
Так они по одному редко используются. Тем более в этой задаче. Тем более после ответа про ReadLn. |
zx1024 |
![]()
Сообщение
#10
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ivs.
Я имел ввиду то, что не стоит после каждого нахождения #10 работать с файлами (физически). |
zx1024 |
![]()
Сообщение
#11
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ivs.
P.S. Просьба: не надо меня на Вы. Пожалуйста. |
Ivs |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Хорошо тогда так: Читай Read'ом символ, и если он не "символ перевода строки" и "возврата корретки", то пиши в новый файл Writ'ом. Проверил работает.
Вариант с readln'ом не работает. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
Ivs |
![]()
Сообщение
#13
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 209 Репутация: ![]() ![]() ![]() |
Цитата Ivs. P.S. Просьба: не надо меня на Вы. Пожалуйста. Как хочешь. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
zx1024 |
![]()
Сообщение
#14
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 119 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ivs.
Наверное, мне придётся извиниться за <06.09.2003 00:40:07>. Ведь в условии ничего не было про возврат корретки. |
sandman |
![]()
Сообщение
#15
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 101 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем спасибо. Все понял. Во всем разобрался
![]() -------------------- Плавают разными стилями, тонут-одним (ц) Кирпичи
|
trminator |
![]()
Сообщение
#16
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Вариант с readln'ом не работает. Я согласен, правильнее было бы обрабатывать по символам, как ты рекомендовал. Но это грустно и тоскливо (по-моему). Поэтому я предложил такой способ. Но мне интересно, почему он у тебя не проходит. Я его только что прогнал - он работает (Delphi console application) Код program Project2; {$APPTYPE CONSOLE} uses SysUtils; var input, output : text; s: string; begin assign(input,'input.txt'); assign(output,'output.txt'); reset(input); rewrite(output); while not EOF(input) do begin ReadLn(input,s); Write(output,s) end; close(input); close(output); end. Сейчас проверю в BP7 -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
GLuk |
![]()
Сообщение
#17
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
А як же BlockRead/Write??!!
|
trminator |
![]()
Сообщение
#18
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
ммм... при чем тут BlockRead? Это же текстовый файл, зачем BlockRead?
-------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
sandman |
![]()
Сообщение
#19
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 101 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем спасибо за ответы и предложения, но задача усложняется...
![]() ![]() Тогда что? ![]() -------------------- Плавают разными стилями, тонут-одним (ц) Кирпичи
|
trminator |
![]()
Сообщение
#20
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
так... По идее, нам все равно, в каком там порядке идут русские буковки (да хоть маковская кодировка, #10#13 они такими и будут). Но. Возможно, мы имеем тогда дело с файлом в стиле Unix, а там принято строку заканчивать не #10#13 а просто #10. Тогда читаем по байту, если это не #10, то записываем.
В общем, все то же самое -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
![]() ![]() |
![]() |
Текстовая версия | 17.07.2025 18:42 |