none
word2003与word2007 replace差异? RRS feed

  • 常规讨论

  • 现有个word模板,这个模板主要就是word页眉页脚的格式信息。然后通过vc6借助模板,生成含页眉页脚的word文档。但是发现在模板中进行 replace文字列的时候 ,word2003与word2007结果不一样。

    例 word2003:   AB 置换(replace) 12  结果ok    A B 置换(replace) 12  结果ok  *注A和B之间有空格 

    word2007:   AB 置换(replace) 12  结果ok    A B 置换(replace) 12  结果ng  *注A和B之间有空格 

    为什么会这样啊?请高手指教。下面是部分代码。

    COleVariant vReplace((const long)wdReplaceAll);
     find.Execute(&::vOptParam,  // 検索文字列
         &::vOptParam, // 大文字小文字区別
         &::vOptParam, // 単語全体を検索対象
         &::vOptParam, // ワイルドカード使用
         &::vOptParam, // 類似検索
         &::vOptParam, // 活用形も検索
         &::vOptParam, // 検索方向
         &::vOptParam, // 末尾検索後の扱い
         &::vOptParam, // 書式の検索
         &::vOptParam, // 置換文字列
         &vReplace,  // 置換回数
         &::vOptParam, // アラビア言語用
         &::vOptParam, // 右から左へ記述文書用
         &::vOptParam, // アラビア言語用
         &::vOptParam); // 右から左へ記述文書用

    BOOL Find::Execute(VARIANT* FindText, VARIANT* MatchCase, VARIANT* MatchWholeWord, VARIANT* MatchWildcards, VARIANT* MatchSoundsLike, VARIANT* MatchAllWordForms, VARIANT* Forward, VARIANT* Wrap, VARIANT* Format, VARIANT* ReplaceWith,
      VARIANT* Replace, VARIANT* MatchKashida, VARIANT* MatchDiacritics, VARIANT* MatchAlefHamza, VARIANT* MatchControl)
    {
     BOOL result;
     static BYTE parms[] =
      VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;
     InvokeHelper(0x1bc, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
      FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl);
     return result;
    }

    2010年7月13日 3:24