• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

помогите сделать прогу

  • Автор темы Автор темы Dram
  • Дата начала Дата начала

Dram

Экономичный вид памяти
Регистрация
19 Фев 2008
Сообщения
2,632
Реакции
34
Баллы
0
помогите сделать прогу

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



Ах да забыл если нет искомого слова то нужно чтобы создовался 3 файл .txt и в нем сохранялась слово а в проге выдовало тект типа не такова.
 
Последнее редактирование:
Привет всем форумчанам! вот хотел сделать прогу в паскале. И понял что я в паскале практически 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<>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<>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 ты прости что надоедаю. прога работает поЧти правильно. но как сделать чтобы прога не заменяла FILE_3.TXT на другой с новым содержанием а добовляла новый текст и сохраняла. и прогу надо зациклить чтоб она работала снова и снова а не закрывалась
 
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<>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<>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 Огромное. работает как надо
yahoo.gif
up.gif
 
Vladimir_S, у меня небольшой вопрос: что значит
IF IOresult<>0 THEN
ReWrite(f3);
Writeln(f3, S);
Close(f3);
END;
Close(f1);
Close(f2);
ReadLn;
UNTIL 0=1;
END.

Мой Паскаль пишет: неизвестный идентификатор(((
 
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+}.
 
Я набрала программу в Турбо Паскале, она вроде работает, но зациклилась((( Что мне делать?
 
Я набрала программу в Турбо Паскале, она вроде работает, но зациклилась((( Что мне делать?

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

Так там же пауза (ReadLn) поставлена. Надо в конце "Enter" нажать. Тогда должна завершиться.
 
Нажимаю на Enter, а программа в ответ "Enter search string". Наверное, стоит поискать ошибку в программе: вдруг я что-то пропустила?
 
Нажимаю на Enter, а программа в ответ "Enter search string". Наверное, стоит поискать ошибку в программе: вдруг я что-то пропустила?

Быть того не может. Значит, после того, как убрали цикл, не перетранслировали и запускаете старую версию. Иначе не пойму. А Вы что - вручную ее набивали? А зачем?
 
Быть того не может. Значит, после того, как убрали цикл, не перетранслировали и запускаете старую версию. Иначе не пойму. А Вы что - вручную ее набивали? А зачем?

В Турбо Паскаль невозможно копировать-вставить((( Поэтому я обычно пользуюсь АВС Паскалем. Он чем-то напоминает Ворд - белый фон, а снизу еще и окно вывода.
 
А первая версия программы (пост #2) прекрасно работает и нравится мне гораздо больше))) У меня уже целая папка интересных программ с форума)))
 
В Турбо Паскаль невозможно копировать-вставить((( Поэтому я обычно пользуюсь АВС Паскалем. Он чем-то напоминает Ворд - белый фон, а снизу еще и окно вывода.

Очень даже возможно. Открываете в Блокноте файл, вставляете в него буфер, сохраняете, а затем открываете в ТР. Тем более, что в этой программе кириллицы нет, так что проблем с кодировками не возникает.
 
А первая версия программы (пост #2) прекрасно работает и нравится мне гораздо больше))) У меня уже целая папка интересных программ с форума)))

Так вся разница только в том, что вторая зациклена и умеет дописывать в третий файл - а так это одна и та же.
 
А как вставить текст? Как копировать, я знаю: Ctrl+C.
 
А как вставить текст? Как копировать, я знаю: Ctrl+C.

Я привык пользоваться "горячими" клавишами
Ctrl+Insert - поместить в буфер
Shift+Insert - вставить из буфера
Ну и кроме того всегда есть контекстное меню правой клавиши мыши (то есть если конечно Вы используете мышь, а не трекбол).
 
Назад
Сверху