|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.09.2007, 10:49 | #1 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Поиск файла по содержимому
Как соуществить поиск файла (txt, doc, html, rtf...) не по имени файла, а по содержимому тексту. Т. е. например в строке поиска вводим искомое слово и поисковик выдает все файлы, содержащие это слово (но не в имени файла).
|
07.09.2007, 11:15 | #2 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
ну єто тебе нужно будет открівать каждій фаил и в цикле искать строку......
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
07.09.2007, 11:24 | #3 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
а как же я открою html или doc?
|
07.09.2007, 11:42 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
С помощью TFileStream например.
I'm learning to live...
|
07.09.2007, 14:01 | #5 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls, mshtml,urlmon; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; WebBrowser1: TWebBrowser; Button2: TButton; Edit2: TEdit; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } procedure FindText(s: string); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FindText(s: string); var contents: IHTMLTxtRange; begin //если не загрузится страничка, то віход if not(assigned(WebBrowser1.ControlInt erface.Document)) then exit; if not(WebBrowser1.Busy) then begin contents := ((WebBrowser1.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange; while contents.findText(s, 1, 0) do begin //віделяем найденное слово contents.pasteHTML('<font color=blue><b>'+contents.htmlText+' </font></b>'); //переход на то место contents.scrollIntoView(True); end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin if not(Edit2.Text='') then begin FindText(Edit2.Text); end; end; procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate(Edit1.Text);//сайт,где искать end; end. можно даже из конкретного тега инфу вітащить.Вот как из таблиці: tag_table:=webBrowser1.oleObject.do cument.all.tags('TABLE').item(0);.. ....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 07.09.2007 в 14:06. |
07.09.2007, 14:35 | #6 |
Александр
Форумчанин
Регистрация: 15.08.2007
Сообщений: 112
|
Спасибо, конечно, но требуется найти список файлов, содержащих это слово (но не само слово) и отобразить их в listview например
|
07.09.2007, 18:51 | #7 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
тут имхо работы непочатый край, задавай конкретные вопросы
P.S. если интересно, посмотри как пример программу AVSearch (бесплатная)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
07.09.2007, 23:57 | #8 |
Пользователь
Регистрация: 04.09.2007
Сообщений: 19
|
желательно для начала проиндексировать файлы... поскольку при больших обьемах можно искать очень долго
особенно если поиск будет производится по doc и подобных. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск файла БД | D-mon | БД в Delphi | 12 | 29.05.2008 13:26 |
Название файла по содержимому ячеек. Хелп! | Sum | Microsoft Office Excel | 6 | 07.04.2008 00:06 |
Поиск по дате создания файла | kayman | БД в Delphi | 1 | 14.09.2007 14:54 |
Поиск по дате создания файла | kayman | Общие вопросы Delphi | 1 | 14.09.2007 10:36 |