Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открытие вордовского документа, поиск внутри док файла 
:(
    Опции темы
Genius3d
Дата 8.6.2007, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.6.2007

Репутация: нет
Всего: нет



Вот есть функции следующие:

Код

//функция поиска файлов и внутри них по содержанию
procedure TForm1.FindFiles(StartFolder, Mask: string;
 ScanSubFolders: Boolean = True; Node: TTreeNode=nil;st:string='';List: TStrings=nil);
var
 SearchRec: TSearchRec;
 FindResult: Integer;
 NewNode, PNode: TTreeNode;
 S:String;
 a, b: OleVariant;
 j, ilengy: Integer;
 Nashli:boolean;

begin
  ChDir(StartFolder);
  PNode := TreeView1.Items.AddChild(Node, StartFolder);
        // задание пиктограмм для папок закрытых
  PNode.ImageIndex := 1;
  PNode.SelectedIndex := PNode.ImageIndex;
  Nashli:=false;
  ilengy:=Length(WordDocument1.Range.Text);
  j:=0;
 try

   StartFolder := IncludeTrailingBackslash(StartFolder);
   FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
   try
     while FindResult = 0 do
       with SearchRec do
       begin


         if (Attr and faDirectory) <> 0 then
         begin
           if ScanSubFolders and (Name <> '.') and (Name <> '..') then
             FindFiles(StartFolder + Name, Mask, ScanSubFolders,PNode);
         end
         else
         begin
           if MatchesMask(Name, Mask) then
           begin
           // открытие файла для поиска внем
            OpenFile(Name);
              repeat
                a:=j;
                b:=j+Length(st);
                if WordDocument1.Range(a,b).Text=st then
                begin                      //создаем узел если нашли такой файл
                Nashli:=true;
                NewNode := TreeView1.Items.AddChild(PNode, SearchRec.Name);
          //задание пиктограммы
              NewNode.ImageIndex := 0;
              NewNode.SelectedIndex := NewNode.ImageIndex;

          // сохраняем в мемо имя файла, и фразу где встречается искомый текст
                List.Add(StartFolder + Name);
                List.Add(WordDocument1.Range(a,b).Text);
                List.EndUpdate;
                 end;

                inc(j);
                until (j>=ilengy-Length(st)) or Nashli;
             If Nashli then
             begin // если нашли файл содержащий информацию, то заносим его название в мемо
  //и текст в котором содержиться искомая строка для поиска
             List.Add(StartFolder + Name);
                List.Add(WordDocument1.Range(a,b).Text);
                List.EndUpdate;
             end;

             //закрываем word
             WordDocument1.Close;
              WordApplication1.Disconnect;
                {
              NewNode := TreeView1.Items.AddChild(PNode, SearchRec.Name);
          
              NewNode.ImageIndex := 0;
              NewNode.SelectedIndex := NewNode.ImageIndex;

              S:='';
              S:=NewNode.Text;
              while NewNode.Parent <> nil do
              begin
                NewNode:=NewNode.Parent;
                S:=NewNode.Text+'\'+S;
              end;   }

           end;
         end;
         FindResult := FindNext(SearchRec);
       end;
   finally
     FindClose(SearchRec);
   end;
 finally

 end;

//открывает файлы для поиска:

procedure TForm1.OpenFile(FileName: string);

var
DocName,ConfConv,ReadOnly,AddToRecFiles,Psw,PswTmp,Revert,WritePsw,WritePswTmp,
  Fmt,replace:OleVariant;
begin
DocName:=FileName;//èìÿ ôàéëà
ConfConv:=False;
ReadOnly:=False;
AddToRecFiles:=False;
Psw:='';
PswTmp:='';
Revert:=False;
WritePsw:='';
WritePswTmp:='';
Fmt:=wdOpenFormatAuto;
replace:=wdReplaceAll;
WordApplication1.Connect;
WordApplication1.Visible:=false;//íå âêëþ÷àåì âèäèìîñòü Âîðäà
WordApplication1.Documents.Open(DocName, ConfConv, ReadOnly, AddToRecFiles,
  Psw, PswTmp, Revert, WritePsw, WritePswTmp, Fmt, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);

end;



Проблема в том, что работа программы падает когда файл открывается(((....
пишет "Файл не найден".

можете помочь? бьюсь уже который день. Дельфи 7 стоит у меня
PM MAIL   Вверх
MetalFan
Дата 8.6.2007, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



наверное это в Com/ActiveX/Cobra....


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.