Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Artemelka
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 11
1

Поиск слова в файле

28.12.2015, 00:22. Просмотров 348. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста исправить ошибку
Мне надо найти положение введенного слова, то есть номер строки, в которой оно находится и его порядковый номер в строке.
При вводе слова, которое расположено в начале строки выдает номер строки 0.
И еще не факт, что у меня правильно задан алгоритм нахождения порядкового номера, так как мне приходится j увеличивать на 1.
Заранее спасибо!
Вот сама программа:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var f:text;
str:string; 
s,k:string;
y,n,p,j,i:byte;
begin
assign(f,'file1.txt');
reset(f);
write('Введите слово для поиска: ');
readln(s);
y:=0;
n:=0; 
while not eof(f) do
begin
readln(f,str);
inc(y);
if pos(S,str)>0 then
begin
n:=y;
p:=pos(s,str);
for i:=1 to p do
begin
if str[i]=' ' then inc(j);
end;
end; 
end;
writeln('nomer stroki: ',n);
writeln('Posicia v strike: ', j+1);
close(f);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2015, 00:22
Ответы с готовыми решениями:

Поиск слова в файле
Здравствуйте, у меня есть такой код: type TForm1 = class(TForm) lbl1:...

Поиск слова в файле
Есть файл config.cfg там есть такое m_filter "0" m_forward "1" m_pitch...

Поиск слова в файле
Здравствуйте. Есть такой код: procedure TForm22.Button1Click(Sender: TObject);...

Поиск слова в файле
помогите пожалуйста реализовать следующее: ввожу в edit слово "ежедевная",...

Поиск слова в файле
помогите пожалуйста разобраться. есть файл, в нём текст, слова разделяются...

6
northener
пофигист широкого профиля
3424 / 2324 / 630
Регистрация: 15.07.2013
Сообщений: 13,753
28.12.2015, 01:02 2
Цитата Сообщение от Artemelka Посмотреть сообщение
И еще не факт, что у меня правильно задан алгоритм нахождения порядкового номера
Точно не факт.
0
Artemelka
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 11
28.12.2015, 01:06  [ТС] 3
вместо того, чтобы издеваться надо мной, лучше помогли бы
я новичок в delphi и многого еще не знаю
я всего лишь прошу помочь с этой задачкой, для здешних монстров программирования она легка, а я думаю над ней
уже несколько часов и все бестолку
0
4E4EN
0 / 0 / 2
Регистрация: 13.09.2014
Сообщений: 70
28.12.2015, 03:48 4
Тебе просто нужно найти нужное слово в файле? если так то вот код

Var
a,b:Integer;
memo:Tmemo;
begin
for a:=0 to memo.lines.count -1 do
begin
if pos('Слово',memo.lines[a])<>0 then
begin
b:=a;
showmessage('Найдено в '+B)
end;
end;

end;
0
AHBAR
239 / 239 / 167
Регистрация: 05.04.2013
Сообщений: 1,106
28.12.2015, 06:13 5
Цитата Сообщение от Artemelka Посмотреть сообщение
p:=pos(s,str);
for i:=1 to p do
зачем ты перебираешь строку посимвольно, чтобы найти позицию слова в строке? у тебя и так функция Pos(s,str) показывает позицию слова. а этот цикл вообще считает количество пробелов чтоли...

Добавлено через 40 минут
попробуй так
Delphi
1
2
3
4
5
6
7
8
9
10
y :=0;
while not eof(f) do
BEGIN
readln(f,str);
if pos(S,str)>0 then break;
inc(y);
END;
CloseFile(f);
writeln('Nomer stroki=',y);
writeln('Nomer pozicii=',Pos(s,str));
Добавлено через 9 минут
зачем вы плодите 2 темы по одному заданию? я прочитал вашу предыдущую тему, там вы просите найти номер слова, поэтому считать пробелы уместно. а здесь:
Цитата Сообщение от Artemelka Посмотреть сообщение
найти положение введенного слова, то есть номер строки, в которой оно находится и его порядковый номер в строке.
определитесь уж что вам нужно и не вводите людей в заблуждение.
0
Artemelka
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 11
28.12.2015, 08:40  [ТС] 6
спасибо за ответ, но мне надо именно найти порядковый номер слова в строке, то есть не чтобы выдавалось, что оно начинается с такой-то позиции, а именно какое это слово по счету (например первое, третье)
прошу прощения, что создал темы по похожему заданию, но в другой теме больше не отвечали, а мне надо было побыстрее разобраться
в другой теме у меня тоже указано про порядковый номер слова в строке, получается по сути то же самое
подправьте пожалуйста код для конкретно моего задания (номер позиции)
заранее большое спасибо!
0
AHBAR
239 / 239 / 167
Регистрация: 05.04.2013
Сообщений: 1,106
28.12.2015, 10:31 7
Цитата Сообщение от Artemelka Посмотреть сообщение
мне надо именно найти порядковый номер слова в строке
тогда для начала можете удалить в строке двойные, тройные и тд пробелы
Delphi
1
while Pos('  ',s) > 0 s := StringReplace(s, '  ', ' ',[rfReplaceAll, rfIgnoreCase]); // заменяем два пробела на один до тех пор пока все пробелы не будут одинарными
теперь смело можно считать пробелы в строке:
Delphi
1
2
3
yy := 0;
for j := 1 to Pos(s,str) do if str[j] = ' ' then inc(yy);
writeln('Nomer slova=',yy+1);
0
28.12.2015, 10:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2015, 10:31

Поиск слова в файле
Мне по заданию нужно искать слово в файле, я воспользовался функцией POS, но...

Поиск слова в нетипизированном файле
необходимо подсчитать количество слов длиной 7 букв в нетепизированом файле...

Поиск слова в файле с разделителем
Здравствуйте. Написал функцию, результатом которой должна быть &quot;ячейка&quot;, т.е....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru