01 2012 档案
要验证这样一个字符串,其中不能包含多个字符
摘要:如果我们要验证这样一个字符串:它全部由小写字母构成,长度不超过12位,其中不能包含unfavored或者unwanted。也可 以照章处理,先匹配“长度不超过12位”的小写字母『[a-z]{,12}』,然后写出匹配“不需要匹配内容”的正则表达式, 『(unfavored|unwanted)』,再用否定顺序环视将它“排除”即可,只是这次要注意,不能直接写(?! (unfavored|unwanted))--------(zcl:注意是括号,而不是[],我就是错在这里,但是注意要加上^和$,因为空字符MTrace也认为是匹配正确),因为它只能排除『(unfavored|unwanted)』出现在字
阅读全文
使用正则表达式找出不包含特定字符串的条目
摘要:http://msdn.microsoft.com/zh-cn/ff695469.aspx使用正则表达式找出不包含特定字符串的条目使用正则表达式找出不包含特定字符串的条目本文来自Kevin Yang博客 作者:Kevin Yang概述做日志分析工作的经常需要跟成千上万的日志条目打交道,为了在庞大的数据量中找到特定模式的数据,常常需要编写很多复杂的正则表达式。例如枚举出日志文件中不包含某个特定字符串的条目,找出不以某个特定字符串打头的条目,等等。使用否定式前瞻正则表达式中有前瞻(Lookahead)和后顾(Lookbehind)的概念,这两个术语非常形象的描述了正则引擎的匹配行为。需要注意一点,
阅读全文
将CRgn rgn对象以图片形式输出便于查看
摘要:为了调试方便,将CRgn rgn对象以图片形式输出,便于查看(如果想直接显示出来可以用 CDC::FrameRgn){ CRgn rgn int w = m_lpShapePoints[4].x+4; int h = m_lpShapePoints[4].y+4; HWND hDesk = GetDesktopWindow(); HDC hDC = ::GetDC(hDesk); CMemDC MemDC(hDC, CSize(w, h), 0); for (int x=0; x<w; x++) { for (int y=0; y<h; y++) { CPoint pt(x, y)
阅读全文
双缓存图片显示常用函数01------CreateMemSrcDC
摘要:>>>改进:可以使用结构来返回多个返回值>> 方法1:CreateMemSrcDC 返回值 -----创建的内存DCHBITMAP &hBmp -----创建的内存DC选中的图片HBITMAP &hOldBmp -----创建的内存DC选中的图片前保存的图片m_hMemSrcDC = CreateMemSrcDC(m_hSrcBmp, m_hOldSrcBmp, pDC, sz.cx+2, sz.cy+2);HDC CLDCText30Control::CreateMemSrcDC(HBITMAP &hBmp, HBITMAP &h
阅读全文
CString 逆向查找字符串
摘要:AllInput 待查找的完整字符串,key 被查找的子字符串 { CString AllInput = GetAllTxt(); CString key = _T("/r/n")+strGuestName; CString strLastInput; CString stemp = AllInput; int pos = stemp.ReverseFind('/r'); while (pos>0) { CString sSub = stemp.Mid(pos); // 获得最后1行字符串 if (sSub....
阅读全文
VC 中如何从字符串中分离文件名与路径+路径操作
摘要:#include "stdafx.h"#include "PathStringManager.h"CPathStringOper::CPathStringOper(void){}CPathStringOper::~CPathStringOper(void){}CPathStringOper::GetFolderPathFromFullPath(LPCTSTR lpszFullPath){ // 获取文件路径: // 注意不是“/”以结尾,因为使用过程中加上一个“/”容易,减去一个不容易 CString m_strOriFileName(lpszFullP
阅读全文
日志记录组件
摘要:http://blog.csdn.net/nxjbill/archive/2008/04/29/2342587.aspx我的日志记录组件 - 东方散人 - CSDN博客和大家分享下我写的日志记录文件组件。下面是一些定义和调用的封装。如存在bug,欢迎指正。如需要demo程序和组件可去我在csdn下的下载资源或是去风华软件在线(www.fhuasoft.cn)网站上去下载。//下面是定义文件#ifndef _DEBUG_TRACE_2004#define _DEBUG_TRACE_2004#include <atlbase.h>#include "logdeal.h&quo
阅读全文
获取 GetLastError 文本信息
摘要:DWORD derr = GetLastError(); derr = derr; LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(), 0, // Default language (LPTSTR) &lpMsgBuf, 0, NULL ); // Process any inserts in lpMsgBuf.// ... // Display
阅读全文
LD SDK LDCControlDll 中 CXMLFile的进一步使用方法,建议以后改进
摘要:1、遍历子节点DWORD dRes;if ( 0 == (dRes=xmloper.selectFirstChildNode()) ){//nodetxt = "Programe"while (0==dRes){CString strProg;xmloper.readNodeValue(strProg);CDocument *pDoc = this->OpenDocumentFile(strProg);dRes = xmloper.selectNextNode();}xmloper.selectParentNode();}2、获取节点IDxmloper.readNod
阅读全文
文件夹操作
摘要:int CCorreDataMain::IsDirectoryFind(CString szPath)//文件夹是否存在 0存在 -1为空,-2为非法路径,-3为盘符异常,-4需要创建目录{ if (szPath == "") return -1;//为空 if (szPath.Right(1)=='//') szPath.TrimRight('//');//去掉 if (szPath.GetLength()<2) return -2;//非法路径 else if (szPath.GetLength()==2) { szPath.Mak
阅读全文
CConfigXmlFile02
摘要:CConfigXmlFile02.h#pragma once#import <msxml6.dll> // raw_interfaces_only,named_guiIDs using namespace MSXML2;#include <vector>using namespace std;class CConfigXmlFile02 {public: CConfigXmlFile02(void); virtual ~CConfigXmlFile02(void); CConfigXmlFile02(CString path);protected: bool InitD
阅读全文
在注册表写入+读取当前软件的语言版本号+路径信息
摘要:{ DWORD pCount=1024; TCHAR szValue[1024]; CString str; CRegKey reg; if ( ERROR_SUCCESS==reg.Create(HKEY_CURRENT_USER, _T("Software//Leyard"))) { if (ERROR_SUCCESS==reg.QueryValue(szValue, _T("Language"), &pCount)) { str.Format(_T("%s"), szValue); } else { str = _T(&
阅读全文
CXXApp--获取当前系统应用程序路径
摘要:CString CXXApp::ConfigGetAppPath(){ CString strAppPath; TCHAR path[MAX_PATH]; memset(path,0,sizeof(TCHAR)*MAX_PATH); GetModuleFileName( NULL,path, MAX_PATH ); TCHAR drive[MAX_PATH],dir[MAX_PATH],fname[MAX_PATH],ext[MAX_PATH]; _tsplitpath(path,drive,dir,fname,ext ); strAppPath = drive; strAppPath +=
阅读全文
MyMacro
摘要:#define SAFE_RELEASE(x) { if (x) x->Release(); x = NULL; }#define JIF(x) if (FAILED(hr=(x))) / {Msg(TEXT("FAILED(hr=0x%x) in ") TEXT(#x) TEXT("/n"), hr); return FALSE;}inline void Msg(char *szFormat, ...){ TCHAR szBuffer[512]; // Large buffer for very long filenames (like with
阅读全文
void CXX::OutputMsg01(CString tag, CString str, BOOL clean)
摘要:CStdioFile file; BOOL res = FALSE; if (clean) { res = file.Open(strFilePath, CFile::modeCreate|CFile::modeReadWrite); } else { res = file.Open(strFilePath, CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite); } if (res) { if (!clean) { file.SeekToEnd(); } if (_T("")!=tag) { fi...
阅读全文
相对路径使用方法
摘要:c++ // 没有盘符,为相对路径 strDllPath.Trim(_T("\\")); strDllPath = CEnvironment::ConfigAppDir()+strDllPath;c#String strDir = Environment.CommandLine.Substring(0, Environment.CommandLine.LastIndexOf(@"\XQ-4."));或者Environment.CurrentDirectory // 当操作中途有使用文件打开对话框的情况时,该函数可能会发生变化《Environment.h》
阅读全文
在界面显示rgn--非常有用
摘要:// test,在界面显示rgn--非常有用 if (objLinkFrom->GetName()==_T("3") &&objLinkTo->GetName()==_T("7")) { CBrush brA, brB; VERIFY(brA.CreateSolidBrush(RGB(255,255,0))); VERIFY(brB.CreateSolidBrush(RGB(50,50,50)));int oldmode=dc-> SetROP2(R2_NOTXORPEN); VERIFY(dc-> FrameRg
阅读全文