现在我有一个大型的C ++项目,它由大约1400k行代码组成。现在我有一个要求:为每个类添加一行代码,该代码派生自CDialog,CWnd或CListCtrl。我不可能手动执行此操作。我想也许UltraEdit正则表达式可以帮到我,但我不能自己编写相关的正则表达式。
任何人都可以帮助我?
以下是要添加的代码行:
virtual ULONG GetGestureStatus(CPoint ptTouch) { return 0;}
这是我的代码结构(仅用于说明):
class CRibbonAddPlaceDialog : public CDialog
{
DECLARE_DYNAMIC(CRibbonAddPlaceDialog)
public:
CRibbonAddPlaceDialog();
virtual ~CRibbonAddPlaceDialog();
enum { IDD = IDD_RIBBON_ADDPLACE };
protected:
virtual ULONG GetGestureStatus(CPoint ptTouch) { return 0;}//the line to add
virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnDestroy();
virtual BOOL OnInitDialog();
virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);
public:
BOOL AddButton(CFX_WideString csTitle, AddPlaceButtonProc proc, void* pClientData, CFX_DIBitmap* pButtonImage);
public:
CReader_RibbonFilePageManager* m_pRibbonFilePageMgr;
CReader_RibbonStyle_Static* m_pAddPlace;
CReader_RibbonStyle_Static* m_pAddPlaceTip;
CTypedPtrArray<CPtrArray, buttondata*> m_arButtonData;
CTypedPtrArray<CPtrArray, CBCGPButton*>m_arButton;
};
答案 0 :(得分:3)
假设您想在开场{
之后立即放置该行,请尝试搜索(打开Perl正则表达式):
^(class\b.*\bC(?:Dialog|Wnd|ListCtrl).*\r?\n\{\r?\n)
并替换为
\1virtual ULONG GetGestureStatus(CPoint ptTouch) { return 0;}\r\n
答案 1 :(得分:1)
perl -ibak -pe "s/protected:\n/protected:\n virtual ULONG GetGestureStatus(CPoint ptTouch) { return 0;}/" file_name