Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Вниз

Как с Delphi заменять определенные слова текста в Word   Найти похожие ветки 

 
Sesh   (2003-07-26 08:39) [0]

Сталкнулся с надобностью замены текста в Word с Delphi, как это реализовать? Киньте маленький примерчик.


 
Leran2003   (2003-07-26 08:55) [1]

WordApp: TWordApplication;

...
uses MyWordUnit;

procedure TMainFrm.Button1Click(Sender: TObject);
var
WordDoc:_Document;
begin

WordApp.Connect;

WordDoc:=OpenWordDoc(WordApp,"c:\...\My1.doc");
ReplaceWordText(WordDoc,"Привет","Пока",true);

SaveWordDoc(WordDoc,"c:\...\My2.doc");

// активизировать приложение
WordApp.Activate;
// максимизировать приложение
WordApp.WindowState:=wdWindowStateMaximize;

WordApp.Disconnect;
end;

...


Мой Unit (писалось чисто для себя):

unit MyWordUnit;
interface
uses
// Word97;
Word2000,Variants;

// открывает документ и возвращает ссылку на него
function OpenWordDoc(WordApp:TWordApplication;S:string):_Document;
// сохранение документа в файл
procedure SaveWordDoc(WordDoc:_Document;S:string);
// поиск - замена текста
procedure ReplaceWordText(WordDoc:_Document;pFind,pRepl:string;All:boolean);
implementation
//-------------------------------
function OpenWordDoc(WordApp:TWordApplication;S:string):_Document;
var
FName:OleVariant;
begin
FName:=S;
Result:=WordApp.Documents.Open(FName,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam);
end;
//-------------------------------
procedure SaveWordDoc(WordDoc:_Document;S:string);
var
FName:OleVariant;
begin
FName:=S;
WordDoc.SaveAs(FName,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam);
end;
//-------------------------------
procedure ReplaceWordText(WordDoc:_Document;pFind,pRepl:string;All:boolean);
var
F,R,D:OleVariant;
begin
F:=pFind;
R:=pRepl;
if All then D:=wdReplaceAll else D:=wdReplaceOne;
WordDoc.Content.Find.Execute(F,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
R,
D,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam);
end;

end.


проверенно в 2000, XP, и 97 (здесь нужно будет только снести пару EmptyParam)...



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

Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
3-20403
me2
2003-07-16 13:05
2003.08.07
IB выдает такую вот ошибку


1-20599
Pauk
2003-07-24 14:03
2003.08.07
Popup


6-20654
Basilio
2003-05-30 09:58
2003.08.07
Проблемы с записью в сокет непосредственно после его открытия


14-20697
Ivolg
2003-07-23 12:16
2003.08.07
Animate!


1-20576
Immortal_Death
2003-07-18 22:20
2003.08.07
Мышь на компоненте или в не его приделах.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский