Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];
ВнизПоиск по 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c