![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в Word документе сделать найти и заменить на [D5, D6, Win95/98]
DimaIv © (2002-03-25 17:00:00)например: найти <Firms> заменить на НазваниеФирмы, причем <Firms> может быть несколько (подключаться к Ворду я умею).
Толик (2002-03-27 14:23:00) [1]Есть ещё вариант: создаёшь в Ворде свой шаблон документа (для простоты положи его туда же, где лежит Normal.dot), добавляешь в него через Файл-Свойства-Прочие необходимые параметры. Подключаешся к Ворду из Делфей, создаешь документ, но на основании своего шаблона:
uses
Word2000, Office2000;
var
Template, NewTempl, Props: OleVariant;
WordApp: WordApplication;
Doc: WordDocument;
begin
//подключаемся к Ворду
...
//создаём документ на основе своего шаблона
Template := "MyTemplate";
NewTempl := false;
Doc := WordApp.Documents.AddOld(Template, NewTempl);
//а вот дальше у меня через интерфейсы не получилось, поэтому
//воспользуемся OleVariant
Props := Doc.CustomDocumentProperties;
//заполняешь поля своими значениями
for i := 1 to Props.Count do
Props.Item[i].Value := "Название фирмы";
//обновляешь их
Doc.Fields.Update;
end;
DimaIv (2002-03-25 19:31:00) [2]Вот так работает:
var MyWrap,MyforWard,MyReplace,MyOleStr,NewStr:OleVariant;
MyWrap:=wdFindContinue;
MyforWard:=true;
MyReplace:=WdReplaceAll;
MyOleStr:=<Firms>;
NewStr:="АО МММ"
WordDocument1.Range.Find.Execute(MyOleStr,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,NewStr,MyReplace,EmptyParam,EmptyParam,
MyforWard,MyWraP);
AFROLOV (2002-03-25 17:37:00) [3]1. Запускаем Word.
2. Используем Macrorecorder для записи макроса для поиска и замены. - это практически готовое решение с точностью до синтаксиса.
3. Более подробную информацию можно найти в справке по VBA
Держи код который решает эту задачу.
var
MSWord:Variant;
..
begin
..
MSWord:=CreateOleObject("Word.Application");
//настройка параметров для замены
MSWord.Selection.Find.Text = "<Frims>";//То что ты хочешь менять
MSWord.Selection.Find.Replacement.Text = "АО МММ"//То на что ты хочешь менять
MSWord.Selection.Find.Forward = True;
MSWord.Selection.Find.Wrap = wdFindContinue;
MSWord.Selection.Find.Format = False;
MSWord.Selection.Find.MatchCase = False;
MSWord.Selection.Find.MatchWholeWord = False;
MSWord.Selection.Find.MatchWildcards = False;
MSWord.Selection.Find.MatchSoundsLike = False;
MSWord.Selection.Find.MatchAllWordForms = False;
//
MSWord.Selection.Find.Execute Replace:=2;//Поиск и замена