對百萬級txt檔案的資料,進行查重處理

2021-10-04 08:44:25 字數 1242 閱讀 5200

需求1: 比對a、b兩個檔案,其中a檔案是b檔案的一部分,找出a、b檔案的差集。

使用hashset 分別儲存要比對的資料,然後求差集,主要**如下

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.io;

namespace comparefile

} console.

writeline

("已完成讀取full.txt");

hashset<

string

> comparelst =

newhashset

<

string

>()

;using

(streamreader sr =

newstreamreader

("compare.txt"))

} console.

writeline

("讀取compare.txt已完成");

fulllst.

exceptwith

(comparelst)

; console.

writeline

("full.txt 與 compare.txt 差集 count: "

+ fulllst.count)

;//將差集檔案匯出

using

(streamwriter sr =

newstreamwriter

("diff.txt"))

console.

writeline

("比對結果已匯出");

console.

readline()

;}}}

. ps:

最初,考慮把讀到的資料放入list中,去重使用list.constains()判斷,如果包含在不新增,否則新增的到 list中。

編譯**,發現執行的非常慢,

**邏輯比較簡單,就改用string last 變數儲存讀到的資料,本次讀到的資料儲存到last,下一次讀取時,如果與last不同在新增,並更新last值。

編譯執行很快。

結論:list.constains()在資料量很大時,檢索是否包含某個值,是很慢。

對txt檔案進行加密的小程式

include include void main printf c c1 while c1 n 在wo.txt這個檔案裡,輸完要加密的內容記得在最後加上乙個回車,表示程式完成。system pause 但是如果我們想要進一步完善程式,使程式自動開啟乙個記事本,然後讓你在記事本輸入要加密的內容,然後...

使用C 對txt檔案進行讀寫

首先要包含標頭檔案 include首先,在 檔案目錄下建立txt檔案的兩種方法 特別注意!建立的檔案會在不需要確認的情況下覆蓋目錄下同名檔案,千萬小心!main int argc,char ar 將字串寫入檔案的 rose how are you?向物件rose內寫入字串 jack not bad....

對txt檔案中讀取的字母進行排序

運用到了檔案讀取,數值交換,動態陣列,氣泡排序等知識點 include stdlib.h void swap char a,char b int main printf n 氣泡排序 for i 0 ifor j i 1 jif dataarray i dataarray j swap dataar...