Помощь - Поиск - Пользователи - Календарь
Полная версия: Текстовый файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
LeoDaVinci
Как вывести на экран те строки текстого файла, которые сдержат данное слово?

procedure Vivod(var f:tf);
var
x,s:st;
begin
reset(f);
writeln('Vvedite slovo:');
readln(s);
while not EOF(f) do
[Вот тут у меня ступор smile.gif]
read(f,x);
write(x);

closefile(f);
end;


М
теги...
мисс_граффити

Bokul

procedure Vivod(var f:tf);// что за тип? text?
var x,s:st;// string?
begin
reset(f);//файловою переменную надо сначала связать с файлом через assign (если ты это еще не сделал)
writeln('Vvedite slovo:');
readln(s);
while not EOF(f) do begin
readln(f,x);
if pos(s,x)<>0 then
writeln(x);
end;
closefile(f);//на Делфи пишешь?
end;

klem4
Bokul, слово "ром", строка "паром"
...
Perfez
Цитата(klem4 @ 24.02.2007 21:07) *

Bokul, слово "ром", строка "паром"
...

А что?Разве POS не сработает? blink.gif
Bokul
Точно, давно не программировал..

LeoDaVinci, тогда придется разбивать строку на слова и проверить каждое с них на совпадение, хотя это все можно делать параллельно. Такие темы поднимались десятки раз, если не сотни. Поищи по форуму, будут вопросы - задавай, Разбиение на слова. Все способы. - для старта.

Добавлено через 1 мин.
Цитата
А что?Разве POS не сработает?

Как раз и сработает, а не надо..

Добавлено через 1 мин.
Цитата
Как вывести на экран те строки текстого файла, которые сдержат данное слово?

Хотя, может это и надо? Нигде речь о словах не идёт..
LeoDaVinci
Типы все объявлены, ошибок программа не выдаёт. Файловая переменная связана с файлом.

Вопрос вызывал "кусок", определяющий входит ли данное слово в строку smile.gif

Вставил в программу недостающую часть. Без вывода чего-либо, консоль закрывается :\
readln; в конце есть.

Добавлено через 2 мин.
Спс за помощь.
Буду разбираться.
Bokul
Цитата
Вставил в программу недостающую часть. Без вывода чего-либо, консоль закрывается :\

Полный код, тестовый файл, вводимое слово..
LeoDaVinci
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils,

type
tf=textfile;
st=string[30];

procedure Sozd(var f:tf);
var
h:char;
x:st;
begin
rewrite(f);
repeat
writeln('Vvedite sroku:');
readln(x);
writeln(f,x);
writeln('Prodolzhit? Y/N');
readln(h);
until h in ['n','N'];
closefile(f);
end;

procedure Vivod(var f:tf);
var
x,s:st;
begin
reset(f);
writeln('Vvedite slovo:');
while not EOF(f) do
begin
readln(f,x);
if pos(s,x)<>0 then
writeln(x);
end;
close(f);
end;

var
textf:tf;
slovo:st;
sn,sn1:shortstring;
begin
sn:='d:\temp\ka.txt';
assign(textf,sn);
Sozd(textf);
Vivod(textf);
readln(sn1);
end.
Bokul

procedure Vivod(var f:tf);
var
x,s:st;
begin
reset(f);
writeln('Vvedite slovo:');
readln(s);// <--- забыл это
while not EOF(f) do
begin
readln(f,x);
if pos(s,x)<>0 then
writeln(x);
end;
close(f);
end;




var
textf:tf;
slovo:st;
sn,sn1:shortstring;
begin
sn:='d:\temp\ka.txt';
assign(textf,sn);
Sozd(textf);
Vivod(textf);
readln;// без "(sn1)" - зачем использовать лишнею переменную..
end.

LeoDaVinci
Всё что нужно заработало.
Всем спасибо blum.gif smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.