如何統計程式碼數,統計程式碼數
如何統計程式碼數
- linux下提供了很多工具 + 生產力,甚至在安卓上,都有移植的busybox包含這些工具。
- 根據KISS理念,這些工具的功能很單一。但這些工具組合起來,就可以很方面的統計代碼量了。
統計程式碼數
- 流程為:首先使用find命令找到所有尾碼名符合規則的原始碼檔案,之後使用wc命令統計行數。檔案數可能過多,為防止出錯使用xargs命令分割參數列表,最後得到的結果可以使用sort排序
- 統計所有c原始碼行數的命令:
find -name *.c | xargs wc -l |sort -r。結果按照反序排列
find -name *.c | xargs wc -l |sort -k2 結果按照檔案名稱排列
- 如需統計c++代碼,將
*.c更改為*.cc即可。如果c++使用cpp尾碼名,改為*.cpp
用到的命令詳解find命令
- find命令遞迴搜尋目錄,若任一檔案使運算式為真則放入結果
- 使用方法
find [path...] [expression]
- path指定需要尋找的目錄範圍,預設為目前的目錄
- expression通常為測試條件,返回true或false
-name pattern檔案名稱符合shell正則式
-path pattern檔案路徑名符合shell正則式
-exec order {}執行命令,若返回值為0則真
- 例子:
find -name *.c 搜尋尾碼名為c的檔案
- 例子:
find . -exec sleep {1} 每隔1s顯示一個檔案
wc命令
- wc為wordcount的縮寫,用於統計檔案
- 使用方法
wc [-lwc] filename
- l、w、c分別表示統計行數、單詞數、字元數。預設為統計全部三者
- 例子:
wc -l file1 file2統計兩檔案的行數
xargs命令
- xargs的功能是捕獲管道中前一個命令的輸出,建立分段參數表並執行另一個命令
- find命令如果產生的參數列太長,可以使用xargs命令每次只傳遞一部分參數,防止在部分系統上出現溢出錯誤
- xargs通常以空格或者分行符號分割參數,
-0選項可以保證參數列中含有空格、分行符號等時分割正確
- 例子:
find /tmp -name core | xargs -0 /bin/rm -f。把/tmp檔案夾下所有名稱為core的檔案傳遞給rm命令,強制移除。-0選項可以保證正確處理檔案名稱中含有換行或空格的情況。
sort命令
- sort用於對不同的文本進行排序,以行為單位
- 預設排序方式為升序,
-r選項可以修改為降序排列
-n選項按照字元表示的數位值來排序,如1 2 10 20沒有開啟此選項排序結果為1 10 2 20
-f忽略大小寫
-t設定列之間的分隔字元,-k指定按照第幾列排序
- 例子:
sort -n -f -k 2 test.txt。將test.txt中的各行按照第二列排序,忽略大小寫
重新導向
- 行數統計結果可以存入文字檔中,命令列最後加上
> count.txt即可
- 標準輸入、輸出、錯誤輸出分別用0,1,2表示
- 輸入重新導向使用輸入重新導向運算子
<,可以把檔案中的內容作為程式的輸入。例如測試代碼時使用:./a.out < test.in,test.in檔案裡面是程式的測試輸入
- 輸出重新導向可以將程式的輸出寫入到檔案中,使用輸出重新導向運算子
>。
- 例子:
ls 1>/dev/null 2>/dev/null 不顯示輸出和錯誤輸出。1、2與>之間不能有空格
- 例子:
ls 2> &1> t.txt 將錯誤輸出重新導向到標準輸出,而此時標準輸出還未重新導向,因此標準輸出內容將寫入t.txt,而錯誤輸出仍留在螢幕上
- 例子:
ls 1> t.txt 2> &1將標準輸出和錯誤輸出都寫入t.txt
管道
- 管道使用
|表示
- 功能為前一個命令的標準輸出定向為第二個命令的標準輸入
- 第二個命令必須能從標準輸入中讀取才行,如
ls命令就不符合要求
轉載請註明作者:Focustc,部落格地址為http://blog.csdn.net/caozhk,原文連結為點擊開啟
怎用C#語言統計檔案程式碼數,希望提供代碼
using(StreamReader sr = new StreamReader(@"c:\a.cs"))
{
int cnt = 0;
while (sr.ReadLine() != null)
{
cnt++;
}
// 這個cnt就是行數
}
檔案內的函數層程式碼數統計,怎做?
什麼是SDK? - []
什麼是SDK?
[轉貼 2005-10-14 23:49:09 ] 發表者: 不負我心
經常會在技術論壇裡面看到類似這樣的文章:“什麼是 SDK?”,“請高手講一下 SDK 是什麼東東?”……
其實很簡單,SDK 就是 Software Development Kit 的縮寫,中文意思就是“軟體開發套件”。這是一個覆蓋面相當廣泛的名詞,可以這麼說:輔助開發某一類軟體的相關文檔、範例和工具的集合都可以叫做“SDK”。具體到我們這個系列教程,我們後面只討論廣義 SDK 的一個子集——即開發 Windows 平台下的應用程式所使用的 SDK。
呵呵,其實上面只是說了一個 SDK 大概的概念而已,理解什麼是 SDK 真有這麼容易嗎?恐怕沒這麼簡單!為瞭解釋什麼是 SDK 我們不得不引入 API、動態連結程式庫、匯入庫等等概念。^_^,不要怕,也就是幾個新的名詞而已,我也是到了大學快結束的時候才體會到其實學習新知識就是在學習新名詞、新概念和新術語。
首先要接觸的是“API”,也就是 Application Programming Interface,其實就是作業系統留給應用程式的一個調用介面,應用程式通過叫用作業系統的 API 而使作業系統去執行應用程式的命令(動作)。其實早在 DOS 時代就有 API 的概念,只不過那個時候的 API 是以中斷調用的形式(INT 21h)提供的,在 DOS 下跑的應用程式都直接或間接的通過中斷調用來使用作業系統功能,比如將 AH 置為 30h 後調用 INT 21h 就可以得到 DOS 作業系統的版本號碼。而在 Windows 中,系統 API 是以函數調用的方式提供的。同樣是取得作業系統的版本號碼,在 Windows 中你所要做的就是調用 GetVersionEx() 函數。可以這麼說,DOS API 是“Thinking in 組合語言”的,而 Windows API 則是“Thinking in 進階語言”的。DOS API 是系統程式的一部分,他們與系統一同被載入記憶體並且可以通過中斷向量表找到他們的入口,那麼 Windows API 呢?要說明白這個問題就不得不引入我們下面要介紹得這個概念——DLL。
DLL(又是一個縮寫,感覺 IT 這個行業裡三字頭縮寫特別多),即 Dynamic Link Library(動態連結程式庫)。我們經常會看到一些 .dll 格式的檔案,這些檔案就是動態連結程式庫檔案,其實也是一種可執行檔格式。跟 .exe 檔不同的是,.DLL 檔案不能直接執行,他們通常由 .exe 在執行時裝入,內含有一些資源以及可執行代碼等。其實 Windows 的三大模組就是以 DLL 的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),裡面就含有了 API 函數的執行代碼。為了使用 DLL 中的 API 函數,我們必須要有 API 函數的聲明(.H)和其匯入庫(.LIB),函數的原型聲明不難理解,那麼匯入庫又是做什麼用的呢?我們暫時先這樣理解:匯入庫是為了在 DLL 中找到 API 的進入點而使用的。
所以,為了使用 API 函數,我們就要有跟 API 所對應的 .H 和 .LIB 檔案,而 SDK 正是提供了一整套開發 Windows 應用程式所需的相關檔案、範例和工具的“工具包”。到此為止,我們才真正的解釋清楚了 SDK 的含義。
由於 SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows ......餘下全文>>