博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转:VC调用vbscript.dll使用其正则表达式库
阅读量:5107 次
发布时间:2019-06-13

本文共 1528 字,大约阅读时间需要 5 分钟。

最近要实现一个车险特别约定内的值填空,但是又不想录单员随便在特别约定内乱录入,毕竟这是要打印到保单上面的,

所以考虑在在特别约定模板内增加部分文本弹出录入后替换,所以用到了正则表达式.
VC6使用正则表达式的话,有很多选择,最主要我觉得有两种:一种是使用boost的正则表达式库,还要一种是现在介绍的以com的方式调用的vbscript.dll了。
其中,我个人倾向于使用vbscript.dll的正则表达式库,原因:主要是,感觉这么小的功能,没必要动用boost这样的牛刀,杀这样一只蚂蚁也不太合适,所以
还是使用vbscript.dll,而且这个使用这个也有很多优点的,在win平台下,该dll是系统自带的,在system32里面。而且,考虑到一个问题,boost库的正则
表达式似乎与.net里面的有些许区别,而且javascript里面用的正则表达式库也是这个,总而言之,比较熟!

废话有点多,总而言之,用这个好!

进入正题了,首先用vc以资源的方式打开C:\Windows\System32\vbscript.dll,注意以资源的方式打开,默认是auto,那就只是看到一个vbscript.dll了。

选择typelib的第二项,选择导出成RegExp.tlb

然后将RegExp.tlb拷到工程目录下,在stdafx.h里面加一句

#import "RegExp.tlb"

因为要调用com所以在InitInstance里面

if(!AfxOleInit())

    AfxMessageBox("Initial Failure");

然后写个函数试一下

UpdateData();

VBScript_RegExp_10::IRegExpPtr pRegExp;
HRESULT    hr;
hr = pRegExp.CreateInstance(__uuidof(VBScript_RegExp_10::RegExp));
ExpandedBlockStart.gifif(FAILED(hr)){
    MessageBox("无法创建正则表达式对象!");
return;
}
pRegExp->PutPattern((_bstr_t)(const char *)m_strPattern);/*正则表达式*/
ExpandedBlockStart.gif/*If the RegExp.Global property is False (the default), MatchCollection will    contain only the first match. 
  If RegExp.Global is true, Matches> will contain all matches.*/
pRegExp->PutGlobal(VARIANT_TRUE);
VBScript_RegExp_10::IMatchCollectionPtr pMC =
       pRegExp->Execute((_bstr_t)(const char *)m_strContent);/*要匹配的内容*/
VBScript_RegExp_10::IMatchPtr pM;
CString sTxt;
ExpandedBlockStart.giffor(int i=0;i<pMC->Count;i++){        
       pM = pMC->GetItem(i);
       sTxt = (char *)pM->GetValue();
       MessageBox(sTxt,"匹配项");
}
pRegExp.Release();

发张靓图:

Tag标签: ,,,

关注 - 0
粉丝 - 0

转载于:https://www.cnblogs.com/ternastone/archive/2010/09/21/1832738.html

你可能感兴趣的文章
Vxworks的一些基本概念
查看>>
转:vim 文件格式
查看>>
TsinghuaX: 00740043X C++语言程序设计基础 第二章提纲
查看>>
Arch最小化安装LXDE桌面环境
查看>>
第二期冲刺会议3
查看>>
JQuery案例:暖心小广告
查看>>
面向对象精要-构造函数和原型对象
查看>>
IntelliJ IDEA 使用教程
查看>>
setting-url配置
查看>>
emacs 文本替换
查看>>
生活随笔:面试中需要改进的不足
查看>>
[转载]WebConfig配置文件详解
查看>>
IOS中的JSON解析
查看>>
数据结构——十大排序算法
查看>>
python查库写库例子
查看>>
matlab padarray函数
查看>>
Oracle 12C -- Unified Auditing Policy
查看>>
织梦DedeCms单页面文档生成网站最新文章列表
查看>>
Word Ladder
查看>>
Unity3D 游戏引擎之构建游戏框架与导出IOS项目(一)
查看>>