LaB*_*cca 1 delphi replace ole ms-word
我正在使用(在Delphi win32应用程序中)OLE来执行Word文档中的搜索和替换.
用户准备一个带有一些文本标签的文件,将它们括在"{"和"}"中并保存文件.
就像是
亲爱的{NAME},
我想告诉你{WHAT_I_DID_LAST_WEEK}
当然NAME,WHAT_I_DID_LAST_WEEK数据库字段可以超过255.
所以现在通过使用搜索和替换OLE我得到一个STRING PARAMETER TOO LONG错误(似乎255是可用的最长字符串).
有没有一种简单的方法来摆脱这个问题?
我想到的一些自制解决方案是:
1)截断为255(好的;))可能在末尾附加"..."
2)对于需要替换超过255个字符的每个"标记",我可以先插入更多标记{WHAT_I_DID_LAST_WEEK_1}{WHAT_I_DID_LAST_WEEK_2}{WHAT_I_DID_LAST_WEEK_N},然后一次替换255个字符
(1)是一个快速的解决方案,至少用户没有收到错误,但当然不是很好
(2)可能会工作,但它是一种解决方法,我宁愿另一种解决方案.
可能是另一个解决方案是不使用OLE Serach&Replace但使用另一个功能.
我们使用AWordApp.Selection.TypeText(strValue)和循环来替换值长度超过255个字符的标签...
var
AWordApp: OLEVariant;
...
AWordApp := CreateOleObject('Word.Application');
...
if (Length(strValue) > 255) then
begin
bFound := AWordApp.Selection.Find.Execute(params...);
while bFound do
begin
AWordApp.Selection.TypeText(strValue);
bFound := AWordApp.Selection.Find.Execute(params...);
end;
end;
问候
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |