Delphi關於記錄檔案的操作 轉

2022-07-24 11:54:10 字數 2855 閱讀 7526

本例子幾個變數的說明

tfilerec = record //記錄定義

day : integer;

...//其他定義

end;

f : file of tfilerec //標準的輸入/輸出檔案

filrec : tfilerec //記錄資料

filename : 記錄檔案的名稱

關於記錄檔案的相關操作

(1)記錄檔案的開啟

(2)記錄檔案的讀入和顯示

(3)記錄的增加

(4)記錄的刪除

(5)記錄的修改

(6)記錄檔案的刪除

記錄檔案的開啟

需要使用的方法:

assingfile(f, filename);

reset(f); //開啟乙個已經存在的記錄檔案

rewrite(f); //新建立乙個記錄檔案

filesize(f); //返回記錄檔案記錄個數

procedure openrecfile(const filename: string; var f: tfilerec);

begin

assingfile(f, filename);

tryreset(f);

except //開啟檔案出現異常的處理

on einouterror do

begin

tryif fileexists(filename) = false then //如果檔案不存在,建立

rewrite(methodfile)

else //檔案存在,但是打不開,表示這個檔案有問題

messagedlg('檔案不能開啟', mtwarning, [mbok], 0);

except //建立新檔案的時候出現異常的處理

on einouterror do

messagedlg('檔案不能建立', mtwarning, [mbok], 0);

end;

end;

end;

end;

記錄檔案的讀入

需要使用的方法

read(f,filerec);

procedure readdata_fromrecfile;

begin

for i := 1 to filesize(f) do

begin

read(f, filerec);

...//其他的處理(比如記錄的顯示等等)

end;

end;

記錄的增加

需要使用的方法

seek(f,recno); //recno代表要定位置的記錄編號

write(f,filerec)

基本思路:

獲取指定記錄的位置,並把該位置後的記錄逐個向後移動

(1)在檔案的尾部增加記錄

procedure insertdata_atrecfile_last(const data: tfilerec); //需要插入的資料

begin

seek(f, filesize(f));

write(f, data);

end;(2)在檔案的指定位置前增加記錄procedure insertdata_atrecfile(const index: integer);

//索引號const data : tfilerec;

//需要插入的資料

varni: integer;

begin

if (index > filesize(f)) or (index < 0) then

exit;

for ni := filesize(f) - 1 downto index do

begin

seek(f, ni);

read(f, filerec);

seek(f, ni + 1);

write(f, filerec);

end;

seek(f, index);

write(f, data);

end;記錄的刪除需要使用的方法 seek(f,index); //index代表要定位置的記錄編號write(f,filerec)truncate(f) //刪除指定索引號之後的索引檔案基本思路:獲取指定位置,並把該位置後的記錄逐個

向前移動。 檔案在最後一條記錄前截斷。(1)刪除指定索引號的記錄

procedure deletedata_fromrecfile(const index: integer);

varni: integer;

begin

if (index < 0) or (filesize(f) = 0) then

exit;

for ni := index + 1 to filesize(f) - 1 do

begin

seek(f, ni);

read(f, filerec);

seek(f, ni - 1);

write(f, filerec);

end;

seek(f, filesize(f) - 1);  //截斷最後一條記錄

truncate(f);

end;記錄的修改procedure modifydata_atrecfile(const index: integer; const data: tfilerec);

begin

if (index < 0) or (filesize(f) = 0) or (index > filesize(f) - 1) then

exit;

seek(f, index);

write(f, data);

end;

記錄檔案的關閉

closefile(f);

Delphi關於記錄檔案的操作 轉

本例子幾個變數的說明 tfilerec record 記錄定義 day integer 其他定義 end f file of tfilerec 標準的輸入 輸出檔案 filrec tfilerec 記錄資料 filename 記錄檔案的名稱 關於記錄檔案的相關操作 1 記錄檔案的開啟 2 記錄檔案的...

Delphi操作Excel日誌記錄

1 匯出資料uses comobj procedure tform10.execlexit var h,k integer excelid olevariant s string begin tryexcept exit end tryk adoqry.recordcount excelid.vis...

Delphi 檔案操作的封裝

unit fileoper inte ce uses windows,shellapi,sysutils type tfileoper class public class function winerasefile owner integer wichfiles string sendtorecy...