18.02.2009, 14:53 | #1 (permalink) |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
помогите сделать прогу
Ах да забыл если нет искомого слова то нужно чтобы создовался 3 файл .txt и в нем сохранялась слово а в проге выдовало тект типа не такова. Последний раз редактировалось Dram; 18.02.2009 в 15:31 |
18.02.2009, 14:53 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Проблема возможно уже решена ранее, посмотрите тут Подскажите прогу для синхронизации нокиа 5230 под линух Помогите сделать. Поправить прогу с графическим режимом Подскажите прогу... Помогите,пожалуйста, написать программу на Pascal. Работа с массивами |
18.02.2009, 16:14 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Попробую. Как-то так: VAR S:STRING; S_L, p1, p2, i:INTEGER; f1, f2, f3:TEXT; Ch:Char; BEGIN Assign(f1, 'C:\File_1.txt'); Reset(f1); Assign(f2, 'C:\File_2.txt'); Reset(f2); WriteLn('Enter search string:'); ReadLn(S); S_L:=Length(S); p1:=0; REPEAT Read(f1,Ch); IF (Ch=S[1]) AND (NOT EoF(f1)) THEN BEGIN i:=1; p1:=1; REPEAT INC(i); Read(f1,Ch); IF (NOT EoF(f1)) THEN IF S[i]<>Ch THEN p1:=0; UNTIL (i=S_L) OR (EoF(f1)) OR(p1=0); END; UNTIL (p1=1) OR (EoF(f1)); IF p1=1 THEN WriteLn('TRUE'); p2:=0; REPEAT Read(f2,Ch); IF (Ch=S[1]) AND (NOT EoF(f2)) THEN BEGIN i:=1; p2:=1; REPEAT INC(i); Read(f2,Ch); IF (NOT EoF(f2)) THEN IF S[i]<>Ch THEN p2:=0; UNTIL (i=S_L) OR (EoF(f2)) OR(p2=0); END; UNTIL (p2=1) OR (EoF(f2)); IF p2=1 THEN WriteLn('FALSE'); IF (p1=0) AND (p2=0) THEN BEGIN WriteLn('No string found'); Assign(f3, 'C:\File_3.txt'); ReWrite(f3); Writeln(f3, S); Close(f3); END; Close(f1); Close(f2); ReadLn; END. Как-то так. Попробуйте. Естественно, имена файлов и пути прописывайте как Вам надо. Последний раз редактировалось Vladimir_S; 18.02.2009 в 16:18 Причина: Довесок задания |
|
18.02.2009, 17:07 | #3 (permalink) |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Vladimir_S ты прости что надоедаю. прога работает поЧти правильно. но как сделать чтобы прога не заменяла FILE_3.TXT на другой с новым содержанием а добовляла новый текст и сохраняла. и прогу надо зациклить чтоб она работала снова и снова а не закрывалась
|
18.02.2009, 17:16 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
VAR S:STRING; S_L, p1, p2, i:INTEGER; f1, f2, f3:TEXT; Ch:Char; BEGIN Assign(f1, 'C:\File_1.txt'); Assign(f2, 'C:\File_2.txt'); REPEAT Reset(f1); Reset(f2); WriteLn('Enter search string:'); ReadLn(S); S_L:=Length(S); p1:=0; REPEAT Read(f1,Ch); IF (Ch=S[1]) AND (NOT EoF(f1)) THEN BEGIN i:=1; p1:=1; REPEAT INC(i); Read(f1,Ch); IF (NOT EoF(f1)) THEN IF S[i]<>Ch THEN p1:=0; UNTIL (i=S_L) OR (EoF(f1)) OR(p1=0); END; UNTIL (p1=1) OR (EoF(f1)); IF p1=1 THEN WriteLn('TRUE'); p2:=0; REPEAT Read(f2,Ch); IF (Ch=S[1]) AND (NOT EoF(f2)) THEN BEGIN i:=1; p2:=1; REPEAT INC(i); Read(f2,Ch); IF (NOT EoF(f2)) THEN IF S[i]<>Ch THEN p2:=0; UNTIL (i=S_L) OR (EoF(f2)) OR(p2=0); END; UNTIL (p2=1) OR (EoF(f2)); IF p2=1 THEN WriteLn('FALSE'); IF (p1=0) AND (p2=0) THEN BEGIN WriteLn('No string found'); Assign(f3, 'C:\File_3.txt'); Append(f3); IF IOresult<>0 THEN ReWrite(f3); Writeln(f3, S); Close(f3); END; Close(f1); Close(f2); ReadLn; UNTIL 0=1; END. |
|
18.02.2009, 17:36 | #5 (permalink) |
Экономичный вид памяти
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
|
Спасибище тебе Vladimir_S Огромное. работает как надо http://www.tehnari.ru/sm/yahoo.gif http://www.tehnari.ru/sm/up.gif
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
18.02.2009, 17:43 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
|
|
18.02.2009, 21:11 | #7 (permalink) |
Member
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
|
Vladimir_S, у меня небольшой вопрос: что значит
IF IOresult<>0 THEN ReWrite(f3); Writeln(f3, S); Close(f3); END; Close(f1); Close(f2); ReadLn; UNTIL 0=1; END. Мой Паскаль пишет: неизвестный идентификатор((( |
18.02.2009, 21:47 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Я вот подумал - может быть у Вас отключена по умолчанию опция Input/Output Checking? Попробуйте, например, после начального BEGIN поставить {$I+}. |
|
18.02.2009, 22:25 | #10 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
А чтобы не зацикливалась - уберите (или закомментарьте) из нее две строки: 1. REPEAT (9-я строка сверху после двух Assign'ов) 2. UNTIL 0=1 (предпоследняя строка). |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|