Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
1-34038
fame
2002-10-30 16:49
2002.11.11
Заполнение массива


1-34013
Anar
2002-10-30 16:30
2002.11.11
Параметры запуска


1-34049
pas_andry
2002-10-30 18:05
2002.11.11
Как в TListView узнать отмеченные записи


4-34303
Azzazzin
2002-10-02 15:09
2002.11.11
Очень нужна помощь! RegisterClass & CreateWindow.


1-34113
3asys
2002-10-30 14:51
2002.11.11
Программное создание ярлыка программы для рабочего стола





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский