本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種工程文件的容量信息處理方法及裝置。
背景技術(shù):
由于工程文件很多,逐個(gè)文件統(tǒng)計(jì),不僅耗時(shí)費(fèi)力,且不能保證準(zhǔn)確性。因此,現(xiàn)有技術(shù)通過(guò)借助工程編譯環(huán)境給出的各個(gè)文件的大小,粗略估算出代碼行數(shù)等方法。該方法是利用平均原則,以某個(gè)典型文件的大小,除以該文件的總行數(shù),得出平均每行代碼的大小,然后再用整個(gè)工程的大小除以每一行的大小,可以得到一個(gè)大概的代碼行數(shù)。該方法雖然比人工統(tǒng)計(jì)便捷,但是準(zhǔn)確度太低。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問(wèn)題之一。
為此,本申請(qǐng)的第一個(gè)目的在于提出一種工程文件的容量信息處理方法,該方法實(shí)現(xiàn)了自適應(yīng)識(shí)別工程路徑,避免手動(dòng)添加待統(tǒng)計(jì)文件路徑,提高了工程文件容量信息的統(tǒng)計(jì)粒度和準(zhǔn)確度。
本申請(qǐng)的第二個(gè)目的在于提出一種工程文件的容量信息處理裝置。
為達(dá)上述目的,本申請(qǐng)第一方面實(shí)施例提出了一種工程文件的容量信息處理方法,包括:遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件;根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù)。根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。
本申請(qǐng)實(shí)施例的工程文件的容量信息處理方法,通過(guò)遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件;根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù);根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。由此,實(shí)現(xiàn)了 自適應(yīng)識(shí)別工程路徑,避免手動(dòng)添加待統(tǒng)計(jì)文件路徑,提高了工程文件容量信息的統(tǒng)計(jì)粒度和準(zhǔn)確度。
為達(dá)上述目的,本申請(qǐng)第二方面實(shí)施例提出了一種工程文件的容量信息處理裝置,包括:獲取模塊,用于遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件;檢測(cè)模塊,用于根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù);處理模塊,用于根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。
本申請(qǐng)實(shí)施例的工程文件的容量信息處理裝置,通過(guò)遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件;根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù);根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。由此,實(shí)現(xiàn)了自適應(yīng)識(shí)別工程路徑,避免手動(dòng)添加待統(tǒng)計(jì)文件路徑,提高了工程文件容量信息的統(tǒng)計(jì)粒度和準(zhǔn)確度。
附圖說(shuō)明
本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
圖1是本申請(qǐng)一個(gè)實(shí)施例的工程文件的容量信息處理方法的流程圖;
圖2是本申請(qǐng)一個(gè)實(shí)施例的工程文件的容量信息處理裝置的結(jié)構(gòu)示意圖;
具體實(shí)施方式
下面詳細(xì)描述本申請(qǐng)的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類(lèi)似的標(biāo)號(hào)表示相同或類(lèi)似的元件或具有相同或類(lèi)似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本申請(qǐng),而不能理解為對(duì)本申請(qǐng)的限制。
下面參考附圖描述本申請(qǐng)實(shí)施例的工程文件的容量信息處理方法及裝置。
圖1是本申請(qǐng)一個(gè)實(shí)施例的工程文件的容量信息處理方法的流程圖。
如圖1所示,該工程文件的容量信息處理方法包括:
步驟101,遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件。
具體地,由于工程文件的代碼量很大,包含的文件多,子路徑深,因此,工程中需要統(tǒng)計(jì)的文件分布在所有的路徑中。所以當(dāng)需要統(tǒng)計(jì)工程代碼容量時(shí),首先需要遍歷工程中所有路徑下的文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,并對(duì)所有文件進(jìn)行編號(hào)排序。
進(jìn)而,從該全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件。其中,預(yù)設(shè)的文件類(lèi)型有很多,例如:(.c,.h..H文件),可以根據(jù)實(shí)際應(yīng)用需要進(jìn)行設(shè)置,本實(shí)施例對(duì)此不作限制。
步驟102,根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù)。
具體地,為了提高工程文件代碼容量的統(tǒng)計(jì)粒度和精確度,預(yù)先設(shè)置字符特征庫(kù),其中,字符特征庫(kù)中包括了用于識(shí)別工程文件中代碼行、空行、以及注釋行的標(biāo)識(shí)字符。
進(jìn)而,根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,通過(guò)代碼信息中與字符特征庫(kù)中預(yù)設(shè)字符的匹配數(shù)量,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,其中,該容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù)。
需要說(shuō)明的是,針對(duì)不同的文件類(lèi)型、代碼類(lèi)型、以及注釋類(lèi)型,可以根據(jù)應(yīng)用需要設(shè)置不同的字符類(lèi)型進(jìn)行識(shí)別,具體說(shuō)明如下:
示例一:字符特征庫(kù)包括:空行起始符和結(jié)束符的第一字符類(lèi)型;
根據(jù)第一字符類(lèi)型中的空行起始符和結(jié)束符,檢測(cè)每個(gè)待測(cè)文件的代碼信息,如果出現(xiàn)與空行起始符和結(jié)束符匹配的字符信息,則確定為空行,依次對(duì)整個(gè)文件的代碼信息進(jìn)行檢測(cè),確定每個(gè)待測(cè)文件對(duì)應(yīng)的空行行數(shù)。
示例二:字符特征庫(kù)包括:注釋起始符和結(jié)束符的第二字符類(lèi)型;
根據(jù)第二字符類(lèi)型中的注釋起始符和結(jié)束符,檢測(cè)每個(gè)待測(cè)文件的代碼信息,如果出現(xiàn)與注釋起始符和結(jié)束符匹配的字符信息,則確定為注釋行,依次對(duì)整個(gè)文件的代碼信息進(jìn)行檢測(cè),確定每個(gè)待測(cè)文件對(duì)應(yīng)的注釋行數(shù)。
示例三:字符特征庫(kù)包括:代碼起始符和結(jié)束符的第三字符類(lèi)型;
根據(jù)第三字符類(lèi)型中的注釋起始符和結(jié)束符,檢測(cè)每個(gè)待測(cè)文件的代碼信息,如果出現(xiàn)與代碼起始符和結(jié)束符匹配的字符信息,則確定為代碼行,依次對(duì)整個(gè)文件的代碼信息進(jìn)行檢測(cè),確定每個(gè)待測(cè)文件對(duì)應(yīng)的代碼行數(shù)。
步驟103,根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。
具體地,為了直觀的顯示精確粒度的工程文件容量信息,根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。其中,報(bào)表格式的類(lèi)型很多,本實(shí)施例對(duì) 此不作限制。
進(jìn)一步地,將包含文件名稱(chēng)與容量信息對(duì)應(yīng)關(guān)系的報(bào)表保存到預(yù)設(shè)的路徑中。
本申請(qǐng)實(shí)施例的工程文件的容量信息處理方法,通過(guò)遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件;根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù);根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。由此,實(shí)現(xiàn)了自適應(yīng)識(shí)別工程路徑,避免手動(dòng)添加待統(tǒng)計(jì)文件路徑,提高了工程文件容量信息的統(tǒng)計(jì)粒度。
為了實(shí)現(xiàn)上述實(shí)施例,本申請(qǐng)還提出一種工程文件的容量信息處理裝置。
圖2是本申請(qǐng)一個(gè)實(shí)施例的工程文件的容量信息處理裝置的結(jié)構(gòu)示意圖。
如圖2所示,該工程文件的容量信息處理裝置包括:
獲取模塊11,用于遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件;
檢測(cè)模塊12,用于根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù);
處理模塊13,用于根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。
具體地,為了提高工程文件代碼容量的統(tǒng)計(jì)粒度和精確度,預(yù)先設(shè)置字符特征庫(kù),其中,字符特征庫(kù)中包括了用于識(shí)別工程文件中代碼行、空行、以及注釋行的標(biāo)識(shí)字符。
進(jìn)而,根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,通過(guò)代碼信息中與字符特征庫(kù)中預(yù)設(shè)字符的匹配數(shù)量,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,其中,該容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù)。
需要說(shuō)明的是,針對(duì)不同的文件類(lèi)型、代碼類(lèi)型、以及注釋類(lèi)型,可以根據(jù)應(yīng)用需要設(shè)置不同的字符類(lèi)型進(jìn)行識(shí)別,具體說(shuō)明如下:
其中,在一個(gè)實(shí)施例中,檢測(cè)模塊12用于:
根據(jù)所述字符特征庫(kù)中的第一字符類(lèi)型檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的空行行數(shù),其中,所述第一字符類(lèi)型包括:空行起始符和結(jié)束符。
其中,在另一個(gè)實(shí)施例中,所述檢測(cè)模塊12用于:
根據(jù)所述字符特征庫(kù)中的第二字符類(lèi)型檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的注釋行數(shù),其中,所述第二字符類(lèi)型包括:注釋起始符和結(jié)束符。
其中,在另一個(gè)實(shí)施例中,所述檢測(cè)模塊12用于:
根據(jù)所述字符特征庫(kù)中的第三字符類(lèi)型檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的代碼行數(shù),其中,所述第三字符類(lèi)型包括:代碼起始符和結(jié)束符。
進(jìn)一步地,所述處理模塊13還用于:
將包含所述文件名稱(chēng)與容量信息對(duì)應(yīng)關(guān)系的報(bào)表保存到預(yù)設(shè)的路徑中。
需要說(shuō)明的是,前述對(duì)工程文件的容量信息處理方法實(shí)施例的解釋說(shuō)明也適用于該實(shí)施例的工程文件的容量信息處理裝置,此處不再贅述。
本申請(qǐng)實(shí)施例的工程文件的容量信息處理裝置,通過(guò)遍歷待測(cè)工程的所有文件,將每個(gè)文件的文件名稱(chēng)和文件路徑保存到預(yù)設(shè)的全局變量中,從所述全局變量中獲取與預(yù)設(shè)的文件類(lèi)型對(duì)應(yīng)的待測(cè)文件;根據(jù)預(yù)設(shè)的字符特征庫(kù)檢測(cè)每個(gè)待測(cè)文件的代碼信息,確定與每個(gè)待測(cè)文件對(duì)應(yīng)的容量信息,所述容量信息包括:代碼行數(shù)、空行行數(shù)以及注釋行數(shù);根據(jù)預(yù)設(shè)的報(bào)表格式建立每個(gè)待測(cè)文件的文件名稱(chēng)與容量信息的對(duì)應(yīng)關(guān)系。由此,實(shí)現(xiàn)了自適應(yīng)識(shí)別工程路徑,避免手動(dòng)添加待統(tǒng)計(jì)文件路徑,提高了工程文件容量信息的統(tǒng)計(jì)粒度。
在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征或者特點(diǎn)包含于本申請(qǐng)的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不必須針對(duì)的是相同的實(shí)施例或示例。而且,描述的具體特征或者特點(diǎn)可以在任一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說(shuō)明書(shū)中描述的不同實(shí)施例或示例以及不同實(shí)施例或示例的特征進(jìn)行結(jié)合和組合。
此外,術(shù)語(yǔ)“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個(gè)該特征。在本申請(qǐng)的描述中,“多個(gè)”的含義是至少兩個(gè),例如兩個(gè),三個(gè)等,除非另有明確具體的限定。
流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請(qǐng)的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本申請(qǐng)的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實(shí) 現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實(shí)現(xiàn)在任何計(jì)算機(jī)可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計(jì)算機(jī)的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說(shuō)明書(shū)而言,"計(jì)算機(jī)可讀介質(zhì)"可以是任何可以包含、存儲(chǔ)、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個(gè)或多個(gè)布線的電連接部(電子裝置),便攜式計(jì)算機(jī)盤(pán)盒(磁裝置),隨機(jī)存取存儲(chǔ)器(RAM),只讀存儲(chǔ)器(ROM),可擦除可編輯只讀存儲(chǔ)器(EPROM或閃速存儲(chǔ)器),光纖裝置,以及便攜式光盤(pán)只讀存儲(chǔ)器(CDROM)。另外,計(jì)算機(jī)可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因?yàn)榭梢岳缤ㄟ^(guò)對(duì)紙或其他介質(zhì)進(jìn)行光學(xué)掃描,接著進(jìn)行編輯、解譯或必要時(shí)以其他合適方式進(jìn)行處理來(lái)以電子方式獲得所述程序,然后將其存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。
應(yīng)當(dāng)理解,本申請(qǐng)的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門(mén)電路的離散邏輯電路,具有合適的組合邏輯門(mén)電路的專(zhuān)用集成電路,可編程門(mén)陣列(PGA),現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)等。