![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск строки в файле. [D7, XP]
Papa_serg © (2008-03-31 16:46:00)
AssignFile(CFile,requests);
Reset(CFile);
while not Eof(CFile) do
begin
Readln (CFile,s);
Form1.Memo2.Lines.Add(s);
end;
CloseFile(CFile);
textinone := Form1.Memo2.Lines.Text;
for j:=0 to length(textinone) do
begin
if (textinone[j]='d') then
if (textinone[j+1]='e') then
if (textinone[j+2]='l') then
if (textinone[j+3]='p') then
if (textinone[j+4]='h') then
if (textinone[j+5]='i') then
if (textinone[j+6]=' ') then
Tnum := j+7;
end;
Здравствуйте, помогите найти ошибку.
Что должен делать кусок кода: загружает в переменную textinone содержимое файла requests, ищет в нём строку "delphi", если находит, то записывает в переменную "Tnum", порядковый номер символа, после этой строки.
Не записывает, на выходе, Tnum=0.
P.S. Фаил с #1013, табулярами и прочей гадостью ;)
Anatoly Podgoretsky (2008-03-31 18:22:00) [1]
> м, а как символ hex "0A", в pos прописать? :)
В твоем коде его не может быть.
Palladin (2008-03-31 18:13:00) [2]#10
Papa_serg (2008-03-31 18:12:00) [3]м, а как символ hex "0A", в pos прописать? :)
{RASkov} (2008-03-31 16:57:00) [4]> [3] Papa_serg (31.03.08 16:54)
> if Pos('delphi', textinone) > 1then
> Заработало, спасибо)
Не верно. А если = 1 то что? :)
> Pos('delphi', textinone) +6;
Гы) тоже ка-то по деццки... +Length('delphi');
Papa_serg (2008-03-31 16:57:00) [5]Palladin ©, поправим)
Главное стал находить.
Palladin (2008-03-31 16:56:00) [6]
> Papa_serg (31.03.08 16:54) [3]
да ничего не заработало. если pos ничего не найдет, он тебе 0 (ноль) вернет. как можно так непродуманно писать то?
Palladin (2008-03-31 16:55:00) [7]и еще. в четвертых:
AssignFile(CFile,requests);
Reset(CFile);
while not Eof(CFile) do
begin
Readln (CFile,s);
Form1.Memo2.Lines.Add(s);
end;
CloseFile(CFile);
очень прелестно заменяется одной единственной строчкой
Memo1.Lines.LoadFromFile(requests);
короче, учи матчасть!
Papa_serg (2008-03-31 16:54:00) [8]
if Pos('delphi', textinone) > 1 then
TnumBEGIN := Pos('delphi', textinone)+6;
Заработало, спасибо)
Palladin (2008-03-31 16:49:00) [9]переменные типа String индексируются с 1. это раз. два: тебе в голову не пришло что при
j=Length(textinone)
условие if (textinone[j+1]='e') then ошибочно, благодаря твоей безолаберности. это два. три: есть замечательная функция Pos и не фик изобретать велосипеды
clickmaker (2008-03-31 16:48:00) [10]какая-то "потемкинская лестница", прям
почему бы Pos не использовать?