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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394616.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394616.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394616.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pygame游戲開發入門例子

# *_* coding:utf-8 *_*# 開發團隊:中國軟件開發團隊# 開發人員:Administrator# 開發時間:2019/3/23 11:16# 文件名稱:pygame_demo# 開發工具:PyCharmimport sysimport pygameimport timedef main(): sizewidth,height640,480 pygame.init() screenpygame.display.set…

HTML引入媒體查詢CSS,CSS3 多媒體查詢

CSS3 多媒體查詢CSS2 多媒體類型media 規則在 CSS2 中有介紹&#xff0c;針對不同媒體類型可以定制不同的樣式規則。例如&#xff1a;你可以針對不同的媒體類型(包括顯示器、便攜設備、電視機&#xff0c;等等)設置不同的樣式規則。但是這些多媒體類型在很多設備上支持還不夠友…

Codeforces 835 F Roads in the Kingdom(樹形dp)

F. Roads in the Kingdom(樹形dp) 題意&#xff1a; 給一張n個點n條邊的無向帶權圖 定義不便利度為所有點對最短距離中的最大值 求出刪一條邊之后&#xff0c;保證圖還連通時不便利度的最小值 $n < 2e5 $\(w_i < 1e9\) 思路:樹形dp 這個圖是一個環上掛著很多顆樹&#xf…

前端websocket獲取數據后需要存本地嗎_是什么讓我放棄了restful api?了解清楚后我全面擁抱GraphQL...

GraphQL初步認識背景REST作為一種現代網絡應用非常流行的軟件架構風格&#xff0c;自從Roy Fielding博士在2000年他的博士論文中提出來到現在已經有了20年的歷史。它的簡單易用性&#xff0c;可擴展性&#xff0c;伸縮性受到廣大Web開發者的喜愛。REST 的 API 配合JSON格式的數…

列出薪金高于在部門30_我如何在五個月內將薪金提高一倍并獲得一份了不起的工作...

列出薪金高于在部門30by Sam Williams通過山姆威廉姆斯 我如何在五個月內將薪金提高一倍并獲得一份了不起的工作 (How I Doubled my Salary in Five Months and Got an Amazing Job) Six months ago I quit my job as a junior JavaScript developer and travelled around sou…

ftp服務器 vsftpd搭建和配置以及虛擬用戶的設置

tp: File Transfer Protocol應用層協議&#xff1a;tcp, 21/tcpC/S&#xff1a;Client: 程序Server: 程序數據&#xff1a;命令連接&#xff1a;文件管理類命令&#xff0c;始終在線的連接數據連接&#xff1a;數據傳輸&#xff0c;按需創建及關閉的連接數據傳輸格式&#xff1…

計算機應用基礎案例教程總結,計算機應用基礎案例教程

包杰軍等編著的《計算機應用基礎案例教程》以培養職業能力為目標&#xff0c;本著“做學合一”、“理論與實踐并行”、“知識與技能并重”的教育思想編寫。本書將實際操作案例與教學內容緊密結合&#xff0c;結構清晰、內容翔實、圖文并茂、實用性強。全書共分6章&#xff0c;第…

讓不支持h5新標簽的瀏覽器支持新標簽

把這段js加到頁面的頭部就可以了&#xff0c;創建想讓瀏覽器支持的標簽即可 //條件判斷是否支持 h5 if(window.applicationCache){alert("支持h5")}else{alert("不支持h5")document.createElement("article");document.createElement("head…

ios開發之--UIDocumentInteractionController的使用(實現更多分享服務)

最近在做項目的時候&#xff0c;碰到這樣一個需求&#xff0c;就是本地生成pdf文件&#xff0c;然后本地打開&#xff0c;經過測試發現&#xff0c;pdf文件是無法保存到相冊里面的&#xff0c;只能存到手機里面&#xff0c;鑒于蘋果的存儲機制&#xff0c;需要取出來&#xff0…

eclipse tomcat新建一個_Javaweb07-Eclipse自動創建動態web項目

學習筆記是參考的how2j使用Eclipse創建Dynamic Web Project前面的web項目都是通過手動創建的&#xff0c;現在使用eclipse EE自動創建動態web項目&#xff0c;熟悉一下創建流程&#xff0c;仍舊使用前面創建過的HelloServlet。需要注意的是&#xff0c;這里的tomcat版本變了&am…

python 刪除重復字符_Google面試問題指南:使用Python刪除重復出現的字符

python 刪除重復字符by Anthony Sistilli安東尼西斯蒂里(Anthony Sistilli) Google面試問題指南&#xff1a;使用Python刪除重復出現的字符 (Google Interview Question Guide: Delete Reoccurring Characters with Python) Nowadays, Google interviews are all the rage. Bu…

cordova

命令行 npm install -g cordova cordova create MyApp cd MyApp cordova platform add android 當然也可以把android換成browser把自己的前端程序放在www文件夾內這里注意如果用android studio打包或運行的話&#xff0c;&#xff08;即不用cordova&#xff09;&#xff0c;要把…

冒泡排序(Java版)

冒泡排序基本思想&#xff1a; 1.比較相鄰的元素&#xff0c;如果第一個比第二個大&#xff0c;就交換它們兩個。 2.對每一對相鄰元素做同樣的工作&#xff0c;從開始的第一對到結尾的最后一對。在這一點&#xff0c;最后的元素應該會是最大的數。 3.針對所有的元素重復以上的步…

計算機科學與技術專業的論文周報,畢業設計(實習)周報

本科畢業設計周報第1 周畢業生周記撰寫畢業論文開題報告(初稿)&#xff0c;結合畢業設計所選的題目&#xff0c;查閱大量相關資料&#xff0c;主要針對該設計所涉及的背景&#xff0c;研究目的及意義&#xff0c;以及國內外的相關成熟技術進行篩選&#xff0c;提取部分核心內容…

excel導出_SpringBoot實現快速導出Excel

閱讀本文約需要6分鐘 大家好&#xff0c;我是你們的導師&#xff0c;我每天都會在這里給大家分享一些干貨內容(當然了&#xff0c;周末也要允許老師休息一下哈)。上次老師跟大家分享了下MyBatis 幾種通用的寫法的相關知識&#xff0c;今天跟大家分享SpringBoot實現快速導出Exce…

SignalR Self Host+MVC等多端消息推送服務(4)

由于工作太忙&#xff0c;一直沒時間更新博客&#xff0c;之前有很多朋友一直問我什么時候將后續的代碼發上來&#xff0c;一直沒時間&#xff0c;今天就長話短說&#xff0c;不寫文章了&#xff0c;直接上demo&#xff0c;里面將正式項目中用到的一些敏感信息修改了&#xff0…

項目中需要總結的內容

1.鐵塔項目的硬件總結 2.傳感器項目的硬件總結 3.燈控項目的硬件總結 控制燈閃爍的電路&#xff0c;SIM卡板子復位電路&#xff0c;繼電器控制電路轉載于:https://www.cnblogs.com/yuesheng/p/6086647.html

計算機應用計算機電算化題庫,2014年浙江省會計電算化客觀題題庫

第一套試題一、單選題1.在會計軟件初始設置中&#xff0c;錄入期初余額時(C)A&#xff0e;只要求錄入一級科目的期初余額 B.只要求錄入中間級科目的期初余額C&#xff0e;每級科目均需錄入期初余額 D.只要求錄入最末級科目的期初余額2.在總賬系中&#xff0c;要求能夠進行上下級…

使用一些我喜歡的東西開始使用ES6

by Todd Palmer托德帕爾默(Todd Palmer) 使用一些我喜歡的東西開始使用ES6 (Getting started with ES6 using a few of my favorite things) This tutorial walks you through some easy steps to get started learning the newest version of JavaScript: ES6.本教程將引導您…

A 子類繼承父類,子類的構造函數會覆蓋父類的構造函數

//子類 沒有定義 構造 函數時&#xff0c;默認繼承父類的構造方法&#xff1a;輸出結果為 Class A... // 子類 定義了 構造 函數時&#xff0c;就不會繼承父類的構造方法&#xff1a;輸出結果是 Class B... <?php class A{ public function __construct(){ echo &qu…