Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: CL | DM;

Вниз

Поиск по Doc файлам   Найти похожие ветки 

 
Эндрю2 ©   (2002-10-17 22:31) [0]

// Подскажите где мне вписать искоемое слово(Edit1) заменялось на предлогаемое(Edit2),
// Вообще-то я хочу сделать, поиск текста по Word файлам, и результат чтоб выдовался также как в стандартном Windows поиске, а мозгов не хватает, и я говорю помогите.


 
Эндрю2 ©   (2002-10-17 23:45) [1]

Ну хоть кто-нибуть, ответь чего-нибуть.
Я же жду.


 
Kibitzer ©   (2002-10-18 00:10) [2]

В чём твой вопрос? Что именно не получается?


 
Эндрю2 ©   (2002-10-18 00:18) [3]

Ох-Ох-Ох однако, забыл

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, FileCtrl;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses ComObj;
{$R *.DFM}
// Replace Flags // Заменить Флаги
type
TWordReplaceFlags = set of (wrfReplaceAll, wrfMatchCase, wrfMatchWildcards);

function Word_StringReplace(ADocument: TFileName; SearchString, ReplaceString: string; Flags: TWordReplaceFlags): Boolean;
const
wdFindContinue = 1; // Найдите, Продолжаться
wdReplaceOne = 1; // Замените Это
wdReplaceAll = 2; // Замените Их
wdDoNotSaveChanges = 0; //Не Сохраняйте Изменения
var
WordApp: OLEVariant;
begin
Result := False;

{ Check if file exists } // Проверить если файл существует
if not FileExists(ADocument) then
begin
ShowMessage("Указанный документ не найден");
Exit;
end;

{ Create the OLE Object } // Создайте Объект OLE
try
WordApp := CreateOLEObject("Word.Application");
except
on E: Exception do
begin
E.Message := "Слово не доступно.";
raise;
end;
end;

try
{ Hide Word } //Скрывает Word
WordApp.Visible := True;
{ Open the document } //Открывает документ
WordApp.Documents.Open(ADocument);
{ Initialize parameters} //Инициализирует параметры
WordApp.Selection.Find.ClearFormatting;
WordApp.Selection.Find.Text := SearchString;
WordApp.Selection.Find.Replacement.Text := ReplaceString;
WordApp.Selection.Find.Forward := True;
WordApp.Selection.Find.Wrap := wdFindContinue;
WordApp.Selection.Find.Format := False;
WordApp.Selection.Find.MatchCase := wrfMatchCase in Flags;
WordApp.Selection.Find.MatchWholeWord := False;
WordApp.Selection.Find.MatchWildcards := wrfMatchWildcards in Flags;
WordApp.Selection.Find.MatchSoundsLike := False;
WordApp.Selection.Find.MatchAllWordForms := False;
{ Perform the search} //Выполнить поиск
if wrfReplaceAll in Flags then
WordApp.Selection.Find.Execute(Replace := wdReplaceAll)
else
WordApp.Selection.Find.Execute(Replace := wdReplaceOne);
{ Save word } //Сохраняемое слово
WordApp.ActiveDocument.SaveAs(ADocument);
{ Assume that successful } //Предположите что успешный
Result := True;
{ Close the document } //Закрывает документ
WordApp.ActiveDocument.Close(wdDoNotSaveChanges);
finally
{ Quit Word } // Выход из Word
WordApp.Quit; // Закрывает сам Word
WordApp := Unassigned;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Word_StringReplace("c:\test.doc","Old String","New String",[wrfReplaceAll]);
end;




end.


 
Эндрю2 ©   (2002-10-18 00:51) [4]

?


 
Эндрю2 ©   (2002-10-18 19:40) [5]

Люди так кто-же мне поможет???


 
Bis   (2002-10-19 17:42) [6]

Поиск в Ворде надо делать в Юникоде.
Открываешь файл как текстовый к примеру, переводишь строку в юникодовский вид и ищещь, что тебе надо.
Где-то были у меня исходники, напишу, если найду


 
Эндрю2 ©   (2002-10-25 19:28) [7]

Искомое слово и заменяемое я нашел,вписывать надо вместо "Old String" и "New String" к стате хорошо работает, всмысле заменяет.
-- Но как теперь зделать чтобы он выводил имя файла в котором он нашел искомое слово и как задать каталог в котором нужно искать DOC файлы. Помогите кто может.


 
pasha_golub ©   (2002-10-25 20:55) [8]

цикл по искомым файлам, а там как ты будешь искать не особо важно - куча способов. :-)


 
Эндрю2 ©   (2002-10-30 22:12) [9]

А как задать в этом исходнике (цикл по искомым файлам)?


 
skiph ©   (2002-10-31 04:14) [10]

Var pc: array[0..79] of Char;
Searchrec:Tsearchrec;
begin
StrPCopy(pc, dir+"\*.doc");
FindFirst(pc,FaAnyfile , SearchRec);
// обработка SearchRec.name
while FindNext(SearchRec)<>18 do
// обработка Searchкус.name

Это?



Страницы: 1 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
8-34125
Sniffer
2002-07-17 10:56
2002.11.11
И ещё раз про OpenGL


14-34259
robot 415
2002-10-23 19:11
2002.11.11
тип string, освобождение памяти


1-34027
vic_vm
2002-11-02 12:49
2002.11.11
Как в TStringGrid удалить строку посредине StringGrid-а


7-34275
Holder
2002-07-18 15:10
2002.11.11
Можно ли заблокировать из Windows кнопку Reset ? (на корпусе)


14-34222
Николай Быков
2002-10-20 13:29
2002.11.11
.........................