Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2013, 20:15   #1
George Orwell
 
Регистрация: 01.12.2013
Сообщений: 5
По умолчанию программа чтения из файла. Нужна небольшая помощь.

есть программа ( приведенная чуть ниже ), которая считывает информацию из файла, но мне нужно еще, чтобы при компилировании программы предлагалось ввести слово, и если оно совпадает с тем, которое в файле, то это слово следовательно выводилось, а в случае когда будет вводится неверное слово, которого нет в том файле, выводилась ошибка. вопрос в том, что нужно дописать ?

var
f: file of char;
c: char;

begin
assign (f, 'c:\file.txt');
reset (f);

while not eof (f) do begin
read (f, c);
writeln (c);
end;

close (f);

readln
end.
George Orwell вне форума Ответить с цитированием
Старый 01.12.2013, 20:35   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Из файла у вас вводятся последовательно символы. С чем вы собираетесь сравнивать введенное с клавиатуры слово?
Поясните задачу. И укажите содержимое файла.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 01.12.2013, 20:56   #3
George Orwell
 
Регистрация: 01.12.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Из файла у вас вводятся последовательно символы. С чем вы собираетесь сравнивать введенное с клавиатуры слово?
Поясните задачу. И укажите содержимое файла.
сравнивать нужно с тем, что будет в текстовом файле. то есть слова.
George Orwell вне форума Ответить с цитированием
Старый 01.12.2013, 21:08   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Код:
Readln(sq);
Assign(f,'file.txt');
Reset(f);
While not eof(f) do
  Begin
    Readln(f,st);
    If pos(sq,st)<>0 then
       WriteLn('есть')
    Else 
        Writeln('нет');
   End;
...
Close(f);
Это только набросок.
Например при вводе слова 'мушка' будет найдена и 'погремушка'

Последний раз редактировалось ZX Spectrum-128; 01.12.2013 в 21:11.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 08.12.2013, 19:42   #5
George Orwell
 
Регистрация: 01.12.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Код:
Readln(sq);
Assign(f,'file.txt');
Reset(f);
While not eof(f) do
  Begin
    Readln(f,st);
    If pos(sq,st)<>0 then
       WriteLn('есть')
    Else 
        Writeln('нет');
   End;
...
Close(f);
Это только набросок.
Например при вводе слова 'мушка' будет найдена и 'погремушка'
спасибо! вообщем совместил все и вот что получилось, опять чего-то как-будто не хватает, чтобы программа заработала, то бесконечный цикл, то еще что-то. не могу понять что не так, поэтому снова обращаюсь к вам.

program n;
uses crt;
var
f:file of string;
st:string;
sq:string;

begin
assign (f,'d:\file.txt');
reset(f);
while not eof (f) do
begin
readln(f);
if pos(sq,st)<>0 then
writeln('est')
else
writeln('net');
end;
close(f);
end.
George Orwell вне форума Ответить с цитированием
Старый 08.12.2013, 19:59   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Цитата:

чего-то как-будто не хватает, чтобы программа заработала
Сначала мой кусок программы правильно скопируйте.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 08.12.2013, 21:30   #7
George Orwell
 
Регистрация: 01.12.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Сначала мой кусок программы правильно скопируйте.
я и скопировал, но пришлось немного переделать
George Orwell вне форума Ответить с цитированием
Старый 08.12.2013, 21:55   #8
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Переделали?
А можно спросить, что делает эта строка?
Readln(f);
И чему равны sq,st?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 10.12.2013, 09:58   #9
George Orwell
 
Регистрация: 01.12.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Переделали?
А можно спросить, что делает эта строка?
Readln(f);
И чему равны sq,st?
c вообще не нужно, поэтому и убрал.
George Orwell вне форума Ответить с цитированием
Старый 10.12.2013, 10:02   #10
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

В вашем коде вообще нет переменной с. Так что делает readln(f); ?
И чему все-таки равны sq и st?
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Небольшая задачка. Нужна помощь. Prayerok Помощь студентам 9 24.12.2009 00:27
Люди помощь нужна небольшая! sauron99 Общие вопросы C/C++ 0 18.06.2009 15:50
Игра озеро на Delphi, нужна небольшая помощь Serega123 Помощь студентам 11 03.06.2008 16:00