• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-20  評論-12  文章-0  trackbacks-0
             
            松果推薦:
            電影:
            《媽媽再愛我一次》、《別告訴爸爸》、《人狗奇緣》、《美女的煩惱》

            電視劇:
            《潛伏》、《狄仁杰》

            supernets推薦:

            電影:
            《偷天換日》,《貧民富翁》,《非常人販》

            posted @ 2009-02-12 17:01 宋振華 閱讀(239) | 評論 (1)編輯 收藏
            將所有的"..."字符串替換成_T("..."),但是不能替換#include后面的字符串
            由于vs的正則表達式懶惰跟貪婪控制語法不明確,只好用2條表達式來實現
            1. 將_T("...")轉換成"..." 
            _T\x28{"[^"]@"}\x29
            \1
            2. 將"..."轉換成_T("..."),其中過濾掉#include 的前綴
            ~(\#include:b){"[^"]@"}
            _T(\1)

            將兩步合成一個宏,添加到IDE環境中.
            Option Strict Off
            Option Explicit Off
            Imports System
            Imports EnvDTE
            Imports EnvDTE80
            Imports EnvDTE90
            Imports System.Diagnostics

            Public Module RecordingModule
                
            Sub replace_str()
                    DTE.Windows.Item(
            "{CF2DDC32-8CAD-11D2-9302-005345000000}").Activate() 'Find and Replace
                    DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
                    DTE.Find.FindWhat 
            = "_T\x28{""[^""]@""}\x29"
                    DTE.Find.ReplaceWith 
            = "\1"
                    DTE.Find.Target 
            = vsFindTarget.vsFindTargetCurrentProject
                    DTE.Find.MatchCase 
            = False
                    DTE.Find.MatchWholeWord 
            = False
                    DTE.Find.MatchInHiddenText 
            = False
                    DTE.Find.PatternSyntax 
            = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
                    DTE.Find.ResultsLocation 
            = vsFindResultsLocation.vsFindResultsNone
                    DTE.Find.Action 
            = vsFindAction.vsFindActionReplaceAll
                    DTE.Find.Execute()
                    DTE.Windows.Item(
            "{CF2DDC32-8CAD-11D2-9302-005345000000}").Activate() 'Find and Replace
                    DTE.Find.FindWhat = "~(\#include:b){""[^""]@""}"
                    DTE.Find.ReplaceWith 
            = "_T(\1)"
                    DTE.Find.Target 
            = vsFindTarget.vsFindTargetCurrentProject
                    DTE.Find.MatchCase 
            = False
                    DTE.Find.MatchWholeWord 
            = False
                    DTE.Find.MatchInHiddenText 
            = False
                    DTE.Find.PatternSyntax 
            = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr
                    DTE.Find.ResultsLocation 
            = vsFindResultsLocation.vsFindResultsNone
                    DTE.Find.Action 
            = vsFindAction.vsFindActionReplaceAll
                    DTE.Find.Execute()
                    DTE.Windows.Item(
            "{CF2DDC32-8CAD-11D2-9302-005345000000}").Close()
                
            End Sub
            End Module

            后續的應用繼續更改上來.

            posted @ 2009-02-10 18:21 宋振華 閱讀(3366) | 評論 (2)編輯 收藏
            文本編輯器是所有計算機系統中最常用的一種工具。UNIX下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多,論壇里好像這方面的總結不多,以下稍做總結,以資共享!渴望更正和補充! 

            進入vi的命令
            vi filename :打開或新建文件,并將光標置于第一行首
            vi +n filename :打開文件,并將光標置于第n行首
            vi + filename :打開文件,并將光標置于最后一行首
            vi +/pattern filename:打開文件,并將光標置于第一個與pattern匹配的串處
            vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
            vi filename....filename :打開多個文件,依次進行編輯

            移動光標類命令
            h :光標左移一個字符
            l :光標右移一個字符
            space:光標右移一個字符
            Backspace:光標左移一個字符
            k或Ctrl+p:光標上移一行
            j或Ctrl+n :光標下移一行
            Enter :光標下移一行
            w或W :光標右移一個字至字首
            b或B :光標左移一個字至字首
            e或E :光標右移一個字至字尾
            ) :光標移至句尾
            ( :光標移至句首
            }:光標移至段落開頭
            {:光標移至段落結尾
            nG:光標移至第n行首
            n+:光標下移n行
            n-:光標上移n行
            n$:光標移至第n行尾
            H :光標移至屏幕頂行
            M :光標移至屏幕中間行
            L :光標移至屏幕最后行
            0:(注意是數字零)光標移至當前行首
            $:光標移至當前行尾

            屏幕翻滾類命令
            Ctrl+u:向文件首翻半屏
            Ctrl+d:向文件尾翻半屏
            Ctrl+f:向文件尾翻一屏
            Ctrl+b;向文件首翻一屏
            nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。

            插入文本類命令
            i :在光標前
            I :在當前行首
            a:光標后
            A:在當前行尾
            o:在當前行之下新開一行
            O:在當前行之上新開一行
            r:替換當前字符
            R:替換當前字符及其后的字符,直至按ESC鍵
            s:從當前光標位置處開始,以輸入的文本替代指定數目的字符
            S:刪除指定數目的行,并以所輸入文本代替之
            ncw或nCW:修改指定數目的字
            nCC:修改指定數目的行

            刪除命令
            ndw或ndW:刪除光標處開始及其后的n-1個字
            do:刪至行首
            d$:刪至行尾
            ndd:刪除當前行及其后n-1行
            x或X:刪除一個字符,x刪除光標后的,而X刪除光標前的
            Ctrl+u:刪除輸入方式下所輸入的文本

            搜索及替換命令
            /pattern:從光標開始處向文件尾搜索pattern
            ?pattern:從光標開始處向文件首搜索pattern
            n:在同一方向重復上一次搜索命令
            N:在反方向上重復上一次搜索命令
            :s/p1/p2/g:將當前行中所有p1均用p2替代
            :n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
            :g/p1/s//p2/g:將文件中所有p1均用p2替換

            選項設置
            all:列出所有選項設置情況
            term:設置終端類型
            ignorance:在搜索中忽略大小寫
            list:顯示制表位(Ctrl+I)和行尾標志($)
            number:顯示行號
            report:顯示由面向行的命令修改過的數目
            terse:顯示簡短的警告信息
            warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
            nomagic:允許在搜索模式中,使用前面不帶“\”的特殊字符
            nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
            mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

            最后行方式命令
            :n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
            :n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
            :n1,n2 d :將n1行到n2行之間的內容刪除
            :w :保存當前文件
            :e filename:打開文件filename進行編輯
            :x:保存當前文件并退出
            :q:退出vi
            :q!:不保存文件并退出vi
            :!command:執行shell命令command
            :n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入并執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
            :r!command:將命令command的輸出結果放到當前行

            寄存器操作
            "?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
            "?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
            "?nyl:將當前行及其下n個字符保存到寄存器?中,其中?為一個字母,n為一個數字
            "?p:取出寄存器?中的內容并將其放到光標位置處。這里?可以是一個字母,也可以是一個數字
            ndd:將當前行及其下共n行文本刪除,并將所刪內容放到1號刪除寄存器中。
            posted @ 2009-02-10 15:06 宋振華 閱讀(212) | 評論 (0)編輯 收藏
            5皇后問題:在8*8的國際象棋棋盤上,放5個皇后,使它們控制整個棋盤,即在任何一格放一個棋子,都會馬上被吃掉。
            下面介紹回溯解法
            定義一個表示點的數據結構:
            1 struct Pt {Int x,y;};
            算法:
             1 Void show_five_queen(Pt arr[],Int x = 0,Int y = 0,Int k = 0)
             2 {
             3     if(k==5)
             4     {
             5         check(arr);
             6         return;
             7     }
             8     for(Int i=x; i<8; i++)
             9     {
            10         for(Int j=y; j<8; j++)
            11         {
            12             arr[k].x = i;
            13             arr[k].y = j;
            14             show_five_queen(arr,i+((j+1)/8),(j+1)%8,k+1);    // 避免重復回溯,要求只按索引順序顯示所有點
            15         }
            16     }
            17 }
            終止條件:
             1 Void check(Pt arr[])
             2 {
             3     for(Int i=0; i<8; i++)
             4     {
             5         for(Int j=0; j<8; j++)
             6         {
             7             Bool found = False;
             8             for(Int k=0; k<5; k++)
             9             {
            10                 if(arr[k].x==|| arr[k].y==|| abs(arr[k].x-i)==abs(arr[k].y-j))
            11                 {
            12                     found = True;
            13                     break;
            14                 }
            15             }
            16             if(!found)
            17                 return;
            18         }
            19     }
            20 
            21     showboard(arr);
            22 }
            效果圖:




            posted @ 2009-02-10 11:25 宋振華 閱讀(2282) | 評論 (0)編輯 收藏
            Win7x64多媒體解碼包
            說明:
            這是一套專用于Windows 7上面的解碼包(XP/2003系統也適用),由外國網友制作,如同其他的解碼包一樣,你無需安裝其他的Codec或者Filter,這個解碼包囊括幾乎所有常用支持格式的解碼。

            這個解碼包不包括播放器,也不會主動關聯相應的文件類型。安裝了該解碼包之后,你可以用任何的播放器播放DVD,電影和視頻剪輯(比如Quicktime,AVI之類的)。同時,這個解碼包也支持在網絡瀏覽器中播放流媒體。
            迅雷下載地址
            posted @ 2009-02-05 17:51 宋振華 閱讀(134) | 評論 (0)編輯 收藏
            wxWidgets界面設計工具 [Commerial]
            DialogBlocks http://www.anthemion.co.uk/dialogblocks/
            wxDesigner http://www.roebling.de/

            [Free]
            wxGlade http://www.roebling.de/
            VisualWx http://visualwx.altervista.org/
            XRCed http://xrced.sourceforge.net/

            wiki:http://wiki.wxformbuilder.org/
            官網:http://wxformbuilder.org/
            posted @ 2009-02-04 22:08 宋振華 閱讀(604) | 評論 (2)編輯 收藏
            國際象棋八皇后問題是很經典的使用回溯解決實際問題的例子,以前也看過一些很麻煩的例子,索性自己簡化一下,使八皇后問題的理解變得簡而易懂了

             1 Void fill_queen(Int board[], Int nRow = 0, Int nSize = 8// board[i]記錄了第i行皇后所在的位置
             2 {
             3     if(nRow==nSize) // 設置遞歸返回條件
             4     {
             5         display(board,nSize);    // 顯示棋盤
             6         return;
             7     }
             8     for(Int col=0; col<nSize; col++)
             9     {
            10         for(Int i=0; i<nRow; i++)    //尋找有沒有跟(nRow,col)沖突的位置
            11         {
            12             if(abs(nRow-i) == abs(col-board[i]) || col == board[i]) //對角線或者豎線沖突
            13             {
            14                 goto next;    // 有沖突就測試下一列
            15             }
            16         }
            17         board[nRow] = col;
            18         fill_queen(board,nRow+1,nSize);
            19 next:;
            20     }
            21 }

             1 Void display(Int board[], Int nSize) // 顯示棋盤(非算法部分)
             2 {
             3     static Int count = 0;
             4     printf("\n************* 第%2d種 *************\n",++count);
             5     for(Int i=0; i<nSize; i++)
             6     {
             7         for(Int j=0; j<nSize; j++)
             8         {
             9             printf(j==board[i] ? "" : "");
            10         }
            11         printf("\n");
            12     }
            13 }



            posted @ 2009-02-04 16:31 宋振華 閱讀(4221) | 評論 (1)編輯 收藏
                 摘要: 使用方法:先執行dir *.jpg *.bmp /b /s > imgcmp.lst,然后替換掉原來的imgcmp.lst雙擊執行imgcmp.exe.哈哈windows目錄下面相同或者相似的文件還是蠻多的嘛.閾值是相關度判斷是否是相似圖片的閾值,塊大小是圖片的分塊像素大小.可執行文件下載:下面是截圖欣賞: Code highlighting produced by Actipro Cod...  閱讀全文
            posted @ 2009-02-04 12:06 宋振華 閱讀(2987) | 評論 (3)編輯 收藏
                 摘要:   閱讀全文
            posted @ 2009-02-03 21:33 宋振華 閱讀(197) | 評論 (0)編輯 收藏
                 摘要:   閱讀全文
            posted @ 2009-01-31 16:16 宋振華 閱讀(208) | 評論 (0)編輯 收藏
            僅列出標題
            共2頁: 1 2 
            99久久99这里只有免费费精品 | 久久九九兔免费精品6| 99久久中文字幕| 一本一本久久A久久综合精品| 久久精品免费大片国产大片| A狠狠久久蜜臀婷色中文网| 久久久久久曰本AV免费免费| 亚洲欧美另类日本久久国产真实乱对白| 7国产欧美日韩综合天堂中文久久久久| 漂亮人妻被黑人久久精品| 亚洲AV日韩AV永久无码久久| 久久久久精品国产亚洲AV无码| 久久影视综合亚洲| 人人狠狠综合久久亚洲| 久久亚洲AV永久无码精品| 久久久99精品一区二区| 久久伊人中文无码| 精品国产乱码久久久久软件| 少妇人妻综合久久中文字幕| 久久亚洲sm情趣捆绑调教| 精品久久久无码人妻中文字幕| 久久国产色av免费看| 久久久亚洲欧洲日产国码二区| 久久99精品久久久久久动态图| 久久99精品久久久久久久不卡 | 亚洲天堂久久精品| 国产亚洲成人久久| 亚洲精品无码久久久| 日韩精品无码久久久久久| 99久久国语露脸精品国产| 草草久久久无码国产专区| 久久久精品久久久久久| 2021国内精品久久久久久影院| 亚洲国产精品无码久久久不卡 | 久久青青色综合| 精品国产VA久久久久久久冰 | 亚洲综合久久久| 国产Av激情久久无码天堂| 精品国产一区二区三区久久蜜臀| 亚洲成av人片不卡无码久久| 亚洲av日韩精品久久久久久a|