Уважаемые Господа!
Есть функция:
Procedure FindAndReplaceInWordDoc(WD:TWordDocument;Const oStr,nStr:string);
Var
oldString, newString, Replace:OleVariant;
Begin
//Замена всех строк oStr на строку nStr в открытом документе Word2000
Replace :=wdReplaceAll; oldString:=oStr; newString:=nStr;
WD.Range.Find.Execute(oldString, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, newString, Replace,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
End;
Она используется ШИРОКО в коде нескольких программ. Происходит замена некоторых строк из шаблона (например @Up ) на строки, сформированные программой.
Среда — Delphi 5 + SP#1, Word 2000 + SP#3, используются компоненты те, что для Office 2000 (dcloffice2k50.bpl).
В случае если длина строки больше 255 символов получаем надпись "Слишком длинный строковый параметр". Что делать?
Не подскажите ли, как обойти данное ограничение?
С уважением.
Здравствуйте, YUKLA, Вы писали:
YUK>Уважаемые Господа!
YUK>Есть функция:
YUK>YUK>Procedure FindAndReplaceInWordDoc(WD:TWordDocument;Const oStr,nStr:string);
YUK>Var
YUK> oldString, newString, Replace:OleVariant;
YUK>Begin
YUK>//Замена всех строк oStr на строку nStr в открытом документе Word2000
YUK> Replace :=wdReplaceAll; oldString:=oStr; newString:=nStr;
YUK> WD.Range.Find.Execute(oldString, EmptyParam, EmptyParam, EmptyParam,
YUK> EmptyParam, EmptyParam, EmptyParam, EmptyParam,
YUK> EmptyParam, newString, Replace,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
YUK>End;
YUK>
YUK>Она используется ШИРОКО в коде нескольких программ. Происходит замена некоторых строк из шаблона (например @Up ) на строки, сформированные программой.
YUK>Среда — Delphi 5 + SP#1, Word 2000 + SP#3, используются компоненты те, что для Office 2000 (dcloffice2k50.bpl).
YUK>В случае если длина строки больше 255 символов получаем надпись "Слишком длинный строковый параметр". Что делать?
YUK>Не подскажите ли, как обойти данное ограничение?
YUK>С уважением.
Попробую переформулировать мой вопрос — "Можно ли как-нибудь иначе чем с помощью Range.Find.Execute(...) произвести замену строки на другую строку в открытом документе MS Word средствами Delphi?"
С уважением.
Здравствуйте, YUKLA, Вы писали:
YUK>Вопрос состоял в том как обойти ограничение (вполне реальное) в Range.Find.Execute — возможно, написать какую-то другую конструкцию? Как это сделать в VB — я нашел. Но как это написать в Delphi 5 — не понимаю.
А как это сделать в VB?
YUK>С уважением.... << RSDN@Home 1.1.4 beta 3 rev. 185>>