日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi关于记录文件的操作

發布時間:2023/11/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi关于记录文件的操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/railgunman/archive/2010/08/16/1801004.html

Delphi關于記錄文件的操作

本例子幾個變量的說明
TFileRec =?record   //記錄定義
Day :?Integer;
...          //其他定義
end;
f :?File of?TFileRec;?   //標準的輸入/輸出文件
FilRec : TFileRec;?   ??//記錄數據
FileName ;??????????   ??//記錄文件的名稱
關于記錄文件的相關操作
(1)記錄文件的打開?
(2)記錄文件的讀入和顯示
(3)記錄的增加
(4)記錄的刪除
(5)記錄的修改
(6)記錄文件的刪除

1、記錄文件的打開
需要使用的方法:
AssingFile(f,FileName):
Reset(f):        //打開一個已經存在的記錄文件
Rewrite(f);      ???//新創建一個記錄文件
FileSize(f);       //返回記錄文件記錄個數


procedure?OpenRecFile(const?FileName : string;?var?f : TFileRec);
begin
  AssingFile(f, FileName):
  try
    Reset(f);
  except?//打開文件出現異常的處理
    On?EInOutError?do
    begin
      try
        if?FileExists(FileName) =?False then?//如果文件不存在,創建
          ReWrite(MethodFile);
        else?//文件存在,但是打不開,表示這個文件有問題
          MessageDlg('文件不能打開', mtWarning, [mbOK], 0);
      except?//創建新文件的時候出現異常的處理
        On EInOutError do
          MessageDlg('文件不能創建', mtWarning, [mbOK], 0);
      end;
    end;

  end;
end;

2、記錄文件的讀入
需要使用的方法

Read(f, FileRec);


procedure?ReadData_FromRecFile;
begin
  for?i := 1?to?FileSize(f)?do
  begin
    Read(f, FileRec);
    ...?//其他的處理(比如記錄的顯示等等)
  end;
end;

3、記錄的增加
需要使用的方法?
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;   //需要插入的數據
var
  nI : 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;
4、記錄的刪除
需要使用的方法?
Seek(f, Index);   //Index代表要定位置的記錄編號
Write(f, FileRec)
Truncate(f) ;   //刪除指定索引號之后的索引文件
基本思路:
獲取指定位置,并把該位置后的記錄逐個向前移動。 文件在最后一條記錄前截斷。

(1)刪除指定索引號的記錄
procedure?DeleteData_FromRecFile(const?Index : Integer);
var
  nI :?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;
5、記錄的修改
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;?
6、記錄文件的關閉
CloseFile(f);

?

轉載于:https://www.cnblogs.com/delphi-xe5/p/6082899.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Delphi关于记录文件的操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。