Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 18.02.2009, 14:53   #1 (permalink)
Dram
Экономичный вид памяти
 
Аватар для Dram
 
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
По умолчанию помогите сделать прогу

Привет всем форумчанам! вот хотел сделать прогу в паскале. И понял что я в паскале практически 0 . так вот надо чтобы при вводе слова(или ссылки) прога сканила два файла типа .txt и после выдовала, если есть ссылка в первом тексте то прога говорила верно, а если во втором то не верно.



Ах да забыл если нет искомого слова то нужно чтобы создовался 3 файл .txt и в нем сохранялась слово а в проге выдовало тект типа не такова.

Последний раз редактировалось Dram; 18.02.2009 в 15:31
Dram вне форума   Ответить с цитированием

Старый 18.02.2009, 14:53
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Проблема возможно уже решена ранее, посмотрите тут

Подскажите прогу для синхронизации нокиа 5230 под линух
Помогите сделать.
Поправить прогу с графическим режимом
Подскажите прогу...
Помогите,пожалуйста, написать программу на Pascal. Работа с массивами

Старый 18.02.2009, 16:14   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Dram Посмотреть сообщение
Привет всем форумчанам! вот хотел сделать прогу в паскале. И понял что я в паскале практически 0 . так вот надо чтобы при вводе слова(или ссылки) прога сканила два файла типа .txt и после выдовала, если есть ссылка в первом тексте то прога говорила верно, а если во втором то не верно.
То есть если я правильно понял, ссылка или слово ОБЯЗАНЫ быть или в первом, или во втором файле? И если в первом, то TRUE, а во втором, то FALSE?
Попробую. Как-то так:

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 Причина: Довесок задания
Vladimir_S вне форума   Ответить с цитированием
Старый 18.02.2009, 17:07   #3 (permalink)
Dram
Экономичный вид памяти
 
Аватар для Dram
 
Регистрация: 19.02.2008
Сообщений: 2,632
Записей в дневнике: 1
Сказал(а) спасибо: 6
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2794
По умолчанию

Vladimir_S ты прости что надоедаю. прога работает поЧти правильно. но как сделать чтобы прога не заменяла FILE_3.TXT на другой с новым содержанием а добовляла новый текст и сохраняла. и прогу надо зациклить чтоб она работала снова и снова а не закрывалась
Dram вне форума   Ответить с цитированием
Старый 18.02.2009, 17:16   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Dram Посмотреть сообщение
Vladimir_S ты прости что надоедаю. прога работает поЧти правильно. но как сделать чтобы прога не заменяла FILE_3.TXT на другой с новым содержанием а добовляла новый текст и сохраняла. и прогу надо зациклить чтоб она работала снова и снова а не закрывалась
Пожалуйста:

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.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.02.2009, 17:36   #5 (permalink)
Dram
Экономичный вид памяти
 
Аватар для Dram
 
Регистрация: 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
Dram вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 18.02.2009, 17:43   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Dram Посмотреть сообщение
Спасибище тебе Vladimir_S Огромное. работает как надо http://www.tehnari.ru/sm/yahoo.gif http://www.tehnari.ru/sm/up.gif
Ну вот и славно.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.02.2009, 21:11   #7 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 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.

Мой Паскаль пишет: неизвестный идентификатор(((
ummasha вне форума   Ответить с цитированием
Старый 18.02.2009, 21:47   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Vladimir_S, у меня небольшой вопрос: что значит
IF IOresult<>0 THEN
Мой Паскаль пишет: неизвестный идентификатор(((
Ну, Маша, эту уж совсем странно. IOResult (In and Out operations Result) - это, как мне всегда казалось, стандартная турбопаскалевская функция. Означает она следующее: при любой операции ввода-вывода (read, write rewrite и т.п.) эта функция возвращает 0, если операция прошла успешно, и отличный от нуля код ошибки (тип - Integer), если таковая возникла. В данной программе она используется так: делается файловая операция Append, что означает подготовку к записи в конец файла. Но эта операция корректна, естественно, только тогда, когда файл существует. Поэтому если выработался код ошибки (IOResult вернул значение, отличное от нуля), это значит, что такого файла нет, и тогда дается команда Rewrite, т.е. создать файл, подготовленный для записи. Очень удобная функция, без нее трудно.
Я вот подумал - может быть у Вас отключена по умолчанию опция Input/Output Checking? Попробуйте, например, после начального BEGIN поставить {$I+}.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.02.2009, 22:16   #9 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

Я набрала программу в Турбо Паскале, она вроде работает, но зациклилась((( Что мне делать?
ummasha вне форума   Ответить с цитированием
Старый 18.02.2009, 22:25   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от ummasha Посмотреть сообщение
Я набрала программу в Турбо Паскале, она вроде работает, но зациклилась((( Что мне делать?
Зациклилась она исключительно по просьбе заказчика, см. #3. Прервать можно, например, командой Ctrl+Break (если таковая клавиша есть на Вашем ноуте). Ну или в крайнем случае свернуть и остановить через диспетчер. Или систему перезагрузить.
А чтобы не зацикливалась - уберите (или закомментарьте) из нее две строки:
1. REPEAT (9-я строка сверху после двух Assign'ов)
2. UNTIL 0=1 (предпоследняя строка).
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 22:10.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.