![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
POS [D6, Win95/98]
Metotrone © (2002-09-22 18:12:00)Как произвести операцию Pos(Edit1.Text,f);
если f:TextFile, а не string
PVOzerski (2002-09-23 01:36:00) [1]Если файл очень больщой, такой подход может привести к неоправданно большому расходу памяти. Ощутимо более медленная, но "экономичная" альтернатива - использование blockread, seek, pos и filepos: открываем файл как нетипизированный с длиной записи =length(Edit1.Text), считываем, сравниваем, возвращаемся на исходную позицию+1... Процесс можно значительно убыстрить, если считывать больше длины строки, но тогда надо после каждого сравнения переходить на позицию в файле Исходная_Позиция+Длина_прочитанного_блока-Длина_строки+1. В случае успешного нахождения точка входа определяется как результат FilePos + результат Pos.
Metotrone (2002-09-22 19:04:00) [2]Thanks
Song (2002-09-22 18:59:00) [3]В Pos параметры поменяйте местами.
Song (2002-09-22 18:58:00) [4]
With TStringList.Create Do
try
LoadFromFile("MyFile.txt");
t:=Pos(Text,Edit1.Text);
IF t>0 then ShowMessage("Слово "+Edit1.Text+" находится в файле с позиции "+IntToStr(t)) else ShowMessage("Поиск неудачен");
finally
Free;
end;
Ну когда не нужно будет писать такую ерунду? Когда люди научатся пользоваться хэлпом?
Metotrone (2002-09-22 18:50:00) [5]Этоо как ?
Можно подробнее Please...
Song (2002-09-22 18:44:00) [6]Не надо цикл. Можно просто воспользоваться TStringList.LoadFromFile()
. ... (2002-09-22 18:33:00) [7]
Metotrone (2002-09-22 18:20:00) [8]Это цикл ?
А другого матода нет ?
Song (2002-09-22 18:14:00) [9]Прочитать содержимое файла в строку.