word中替换顺序号全半角函数中的体会

因着要完善WORD附注功能的,对WORD中的查找替换进行了一些深入研究,对编程中测试得到的心得做一个备忘记录。

(1)、全角字会,我用的是AnsiString变量,这样用LENGHT()函数测试出来的是字符数,而不是字节数。

并且copy函数得到的结果也是字符,而不是将全角字符截半成为一个非法字符了。

(2)、对于WORD的替换操作放到了函数,便于长期性的操作。

procedure WordReplaceABCDNUM(wordapp: Variant);
var
  bjzm: AnsiString;
  idx: Integer;
  qjzm: WideString;
  a1, a2: string;
begin  qjzm := 'ABCD0123456789. ()';
  bjzm := 'ABCD0123456789. ()';

  for idx := 1 to Length(qjzm) do
  begin
      WdReplaceWholeStory(wordapp, copy(qjzm, idx, 1), copy(bjzm, idx, 1));
  end;
  end;

 

procedure WdReplaceWholeStory(wordapp: Variant; sourceSTR, targetSTR: string);
var
  vcontent: variant;
begin
   vcontent := wordapp.application.activedocument.content;
  vcontent.Find.ClearFormatting;
  wordapp.Selection.homeKey(unit := wdStory);
  vcontent.Find.Replacement.ClearFormatting;
  vcontent.Find.Text := sourceSTR;
  vcontent.Find.Replacement.Text := targetSTR;
  vcontent.Find.forward := True;
  vcontent.Find.Wrap := wdFindContinue;
  vcontent.Find.Format := False;
  vcontent.Find.MatchCase := False;
  vcontent.Find.MatchWholeWord := False;
  vcontent.Find.MatchByte := FALSE;
  vcontent.Find.MatchWildcards := False;
  vcontent.Find.MatchSoundsLike := False;
  vcontent.Find.MatchAllWordForms := False;
  vcontent.Find.Execute(Replace := wdReplaceAll);
end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值