IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Текстовый файл
LeoDaVinci
сообщение 24.02.2007 19:56
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Как вывести на экран те строки текстого файла, которые сдержат данное слово?

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;


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



Сообщение отредактировано: мисс_граффити - 24.02.2007 20:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 24.02.2007 20:02
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +



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;



Сообщение отредактировано: Bokul - 24.02.2007 20:03


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 24.02.2007 20:07
Сообщение #3


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Perfez
сообщение 24.02.2007 20:13
Сообщение #4


Бывалый
***

Группа: Модераторы
Сообщений: 231
Пол: Женский

Репутация: -  6  +


Цитата(klem4 @ 24.02.2007 21:07) *

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

А что?Разве POS не сработает? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 24.02.2007 20:13
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Точно, давно не программировал..

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

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

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

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

Хотя, может это и надо? Нигде речь о словах не идёт..


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
LeoDaVinci
сообщение 24.02.2007 20:17
Сообщение #6





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Типы все объявлены, ошибок программа не выдаёт. Файловая переменная связана с файлом.

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

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

Добавлено через 2 мин.
Спс за помощь.
Буду разбираться.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 24.02.2007 20:22
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


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

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


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
LeoDaVinci
сообщение 24.02.2007 21:40
Сообщение #8





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 24.02.2007 21:53
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +



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.



--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
LeoDaVinci
сообщение 24.02.2007 22:03
Сообщение #10





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Всё что нужно заработало.
Всем спасибо blum.gif smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 7.06.2024 20:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"