Range.Find.Execute -> Слишком длинный строковый параметр
От: YUKLA  
Дата: 06.12.04 23:07
Оценка:
Уважаемые Господа!

Есть функция:

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 символов получаем надпись "Слишком длинный строковый параметр". Что делать?

Не подскажите ли, как обойти данное ограничение?

С уважением.
Re: Range.Find.Execute -> Слишком длинный строковый параметр
От: Drago Россия  
Дата: 07.12.04 08:02
Оценка:
Здравствуйте, YUKLA, Вы писали:

YUK>В случае если длина строки больше 255 символов получаем надпись "Слишком длинный строковый параметр". Что делать?

YUK>Не подскажите ли, как обойти данное ограничение?

В настройках компайлера включите опцию Huge Strings, кажись в пятерке она уже была
Re[2]: Range.Find.Execute -> Слишком длинный строковый парам
От: YUKLA  
Дата: 07.12.04 12:54
Оценка:
Здравствуйте, Drago, Вы писали:

D>Здравствуйте, YUKLA, Вы писали:


YUK>>В случае если длина строки больше 255 символов получаем надпись "Слишком длинный строковый параметр". Что делать?

YUK>>Не подскажите ли, как обойти данное ограничение?

D>В настройках компайлера включите опцию Huge Strings, кажись в пятерке она уже была


Спасибо

Но это совершенно не из той оперы — само саюой разумеется, этот параметр включен.

Вопрос состоял в том как обойти ограничение (вполне реальное) в Range.Find.Execute — возможно, написать какую-то другую конструкцию? Как это сделать в VB — я нашел. Но как это написать в Delphi 5 — не понимаю.

С уважением.
Re: Range.Find.Execute -> Слишком длинный строковый параметр
От: YUKLA  
Дата: 07.12.04 17:39
Оценка:
Здравствуйте, 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?"

С уважением.
Re[3]: Range.Find.Execute -> Слишком длинный строковый парам
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.12.04 08:00
Оценка: +1
Здравствуйте, YUKLA, Вы писали:

YUK>Вопрос состоял в том как обойти ограничение (вполне реальное) в Range.Find.Execute — возможно, написать какую-то другую конструкцию? Как это сделать в VB — я нашел. Но как это написать в Delphi 5 — не понимаю.

А как это сделать в VB?
YUK>С уважением.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.