Jazz(Dnepr) |
Отправлено: 07.08.2004, 18:45 |
|
Не зарегистрирован
|
Надо из одного документа перенести кусок текста, начинающегося со слова номер N размером L, в другой после слова M. Как будет выглядеть реализация (я не смог выделить текст и переключиться в другой документ). Номер слова я знаю, воспользовавшись ранее функцией
//****************************
Variant vWords = msActiveDocument.OlePropertyGet("Words");
return vWords.Exec(Function("Item") << vIndex); //слово под номером
//vIndex в активном док-е
//****************************
|
|
Gena |
Отправлено: 31.01.2005, 12:25 |
|
Не зарегистрирован
|
На вопрос не могу ответить, но есть встречный вопрос (очень интересует): как в документ Ворда заменить текст на другой (например из метки или мемо)? |
|
Guest |
Отправлено: 31.01.2005, 13:41 |
|
Не зарегистрирован
|
2Gena
CODE |
Заменяет в документе MSWord текст вида <#fldField_Name#> на значение поля
MWOSel = MSWord. OlePropertyGet("Selection");
MWOFind = MWOSel. OlePropertyGet("Find");
{ AnsiString fldname;
AnsiString fldvalue;
TField *fld;
for (все поля dataset)
{ fldname = "<#fld" + fld->Name + "#>";
try { fldvalue = fld->AsString; }
catch (...) { fldvalue = ""; }
try { MSWordSubstitute(MWOFind, fldname, fldvalue); }
catch (...) {; }
void __fastcall MSWordSubstitute
(Variant find
,const AnsiString &oldtext
,const AnsiString &newtext
)
{
Variant repl = find.OlePropertyGet("Replacement");
find.OleProcedure("ClearFormatting");
repl.OleProcedure("ClearFormatting");
find.OleProcedure ("Execute",
/* FindText */ oldtext,
/* MatchCase */ false,
/* MatchWholeWord */ false,
/* MatchWildcards */ false,
/* MatchSoundsLike */ false,
/* MatchAllWordForms */ false,
/* Forward */ true,
/* Wrap */ 1,
/* Format */ false,
/* ReplaceWith */ newtext,
/* Replace */ 2
);
}
| |
|
|