有序歸併文字檔案

2021-08-27 20:12:37 字數 951 閱讀 8479

許多資料庫有

merge

語句,可以方便地將兩個表歸併。但如果需要歸併的資料在文字檔案中,就無法直接使用資料庫的語法了。這時候可以用集算器針對文字檔案完成類似

merge

語句的功能。

table1.txt

和table2.txt

是結構相同但資料不同的檔案。現在要根據列邏輯主鍵a、

b用table2

更新table1

,即主鍵相同但其他欄位不同時更新

table1

,主鍵不同時向

table1

插入資料。

我們假定源資料已經按按邏輯主鍵排序,並且要求結果集仍保持對主鍵有序。這樣就可以反覆地執行這個操作不斷地將新資料加入到目標檔案中。

源資料如下:

用table2

更新table1

之後,table1

應當如下:

集算器**很簡單:

:以游標方式讀取

table1.txt

和table2.txt。

a2:按照邏輯主鍵用

b1更新

a1。函式

merge

可進行資料歸併,並保持結果仍有序,

@x表示操作游標,

@u表示計算並集。

a3:將計算結果寫入新檔案。

這個**使用了游標,對資料檔案的大小沒有要求,可以處理非常巨大的檔案。

讀取文字檔案

void ctestdlg onreadinfo cfile filewrite1 testwrite1.txt cfile modecreate cfile modewrite cfile filewrite2 testwrite2.txt cfile modecreate cfile modew...

寫文字檔案

textoper 文字檔案操作類 public class textoper 新建乙個檔案 public bool createfile string strpath,string strname else file.create strpath strname return true catch ...

文字檔案操作

1 文字檔案的寫入 建立檔案流 filestream filestream new filestream c myfile file.txt filemode.create 建立寫入器 streamwriter sw new streamwriter filestream 以流的方式寫入資料 sw....