|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2011, 23:57 | #1 |
Пользователь
Регистрация: 15.10.2011
Сообщений: 16
|
Задача про файл
Дано текстовый файл. Нужно везде заменить подстроку Р1 подстрокой Р2 и результат записать в новый файл.
uses crt; var f1,f2: text; p1,p2:string; l,i:integer; begin clrscr; writeln('Знайти рядок: '); readln(p1); writeln('Замінити на рядок: '); readln(p2); assign(f1,'C:\Documents and Settings\Admin\Рабочий стол\file.txt'); reset (f1); assign(f2,'C:\Documents and Settings\Admin\Рабочий стол\file1.txt'); rewrite(f2); while not eof(f1) do begin for i:=1 to length(p1) do begin read(f1,p1); ???? end; delete(p1, 0,length(p1)); insert(p2,p1,0); ???? end; close(f1); close(f2); end. вот что-то типо этого я написала. непонятно конкретно как найти строку в файле и как записать эту информацию в новый файл. |
08.12.2011, 00:32 | #2 |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
Что-то ты такое вот такое написала, и совсем не то что надо.
Ну для начала. Ты условие внимательно читала? 1) Дано текстовый файл! значит что файл надо чем-то забить или же он уже чем-то забит. ( не вижу намека на заполнение файла, или хоть что-то связанное с этим ) 2) Подключать файл желательно заранее чтобы потом считать из файлов нужную тебе инфу.( в паскале насколько помню важна последовательность действий ); 3) а вот уже потом вводиш слово и заменяеш его на то что тебе надо.
Люблю на ты.Я человек простой
|
08.12.2011, 04:22 | #3 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Леший.. что-то ты не то говоришь.
Дан текстовый файл - это значит, что файл где-то был кем-то создан (в Блокноте или там Word'е..) и дан тебе (название и положение, например file.txt на флешке). У ТС файл подключается где и как надо. Tattoquardas (откудово такое нико? ответь плз, забавново..)), тут не надо проходить циклом по символам, а нужно просто использовать функцию Pos. Ниже я привожу два варианта. Сначала первый - он будет работать хорошо в "обычных" случаях, типа заменить CAT на TIGER. У меня к тебе просьба: разберись с ним (не читая дальше), пожалуйста, а потом подумай - чем он может быть плох? Когда немного подумаешь, тогда читай то, что я напишу после первого варианта кода. Код:
Баллада о старом Вильяме Автор: Льюис Кэрролл, перевод Самуила Маршака — Папа Вильям, — сказал любопытный малыш, - Голова твоя белого цвета, Между тем ты всегда вверх ногами стоишь. Как ты думаешь, правильно это? — В ранней юности, — старец, промолвил в ответ, - Я боялся раскинуть мозгами, Но, узнав, что мозгов в голове моей нет, Я спокойно стою вверх ногами. — Ты старик, — продолжал любопытный юнец. - Этот факт я отметил вначале. Почему ж ты так ловко проделал, отец, Троекратное сальто-мортале? — В ранней юности, — сыну ответил старик, - Натирался я мазью особой, По два шиллинга банка — один золотник. Вот, не купишь ли банку на пробу? — Ты немолод, — сказал любознательный сын, - Сотню лет ты без малого прожил. Между тем двух гусей за обедом один Ты от клюва до лап уничтожил. — В ранней юности мышцы своих челюстей Я развил изучением права, И так часто я спорил с женою своей, Что жевать научился на славу! — Мой отец, ты простишь ли меня, несмотря На неловкость такого вопроса: Как сумел удержать ты живого угря В равновесье на кончике носа? — Нет, довольно! — сказал возмущенный отец. Есть границы любому терпенью. Если новый вопрос ты задашь, наконец, - Сосчитаешь ступень за ступенью! Перемена окончена, начинается второй час пары.. )) Надеюсь, ты проверила работу программы на семплах TinMan и Tattoquardas )). Работает? Okay, поехали дальше.. Попробуй проверить на таких семплах (только надо, чтоб первый действительно присутствовал в файле!!) INFINITY и INFINITY То есть, чтоб первый был равен второму. Что имеем? Зациклились.. Жми Ctrl-C. Не убедил? Еще один пример: ERROR заменить на EERROR На этот раз прога сработает, но внутри выходного файла будет несколько не то, что мы хотели.. Красиво? )) Вот тебе второй вариант, который свободен от этих багов (проверь!). Можно было бы ожидать, что он стал сложнее - но нет, он стал даже проще, мне кажется.. Код:
Предпочитаю на "ты".
Последний раз редактировалось TinMan; 08.12.2011 в 04:28. |
08.12.2011, 14:13 | #4 | |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
Цитата:
Люблю на ты.Я человек простой
|
|
09.12.2011, 02:20 | #5 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Цитата:
Ты на правильном пути )
Предпочитаю на "ты".
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача про списки | Алекс12345 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 20.08.2011 19:33 |
задача про расписание | любаша | Общие вопросы C/C++ | 1 | 25.11.2009 07:55 |
Задача про зарплаты | GorNikSar | Помощь студентам | 4 | 24.10.2009 08:06 |