乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      利用Delphi的“File Of Type”創(chuàng)建并管理屬于你自己的“數(shù)據(jù)庫”

       獨(dú)孤求財(cái) 2012-03-20

      利用Delphi的“File Of Type”創(chuàng)建并管理屬于你自己的“數(shù)據(jù)庫”

      時(shí)間:2011-5-26來源:yang 作者: peng點(diǎn)擊: 4次
      http://www./keylife/iblog_show.asp?xid=30949

      利用Delphi的“File Of Type”創(chuàng)建并管理屬于你自己的“數(shù)據(jù)庫”
      原作者:Zarko Gajic
      原文在:http://delphi./od/fileio/a/fileof_delphi.htm
      譯   者:LihuaSoft
      做人要厚道,轉(zhuǎn)載請(qǐng)注明出處
      (譯者注:此文并非直譯的,而是盡量按照原文的結(jié)構(gòu),結(jié)合譯者的編程體會(huì),進(jìn)行了概譯)

      前言

        在程序中,我們需要用一個(gè)途徑去把一些有規(guī)律的信息存儲(chǔ)在磁盤上。不能用TXT格式的文件──因?yàn)樗皇腔凇坝涗洝钡?,而且管理很不方便?BR>  BDE或ADO也就是說Paradox、Access……唉,不列舉了──這些我都不想用,尤其不想用BDE。我要用的是ASCII文本文件。Delphi能做到嗎?當(dāng)然能!這就是“File Of”類型文件,或者說files of some type/binary files。
       ?。ㄗg者注:與所有的Win32桌面應(yīng)用程序編譯器相比,Delphi有一個(gè)很獨(dú)到的特點(diǎn):它編譯的Exe可以不需要一些公共動(dòng)態(tài)鏈接庫的支持,盡管因此Delphi的EXE文件可能大一點(diǎn)。而VC、C++Builder、VFP等等這些我用過的編譯器,卻不是這樣,它們編譯的EXE往往需要打包一些Dll才可以用。那么,我們用Delphi開發(fā)數(shù)據(jù)庫程序時(shí),使用BDE、ADO等等引擎,卻因此給Delphi蒙羞──BDE、ADO等等,一般都需要單獨(dú)安裝到操作系統(tǒng)中去。)
        下面舉例演示這個(gè)應(yīng)用。

      首先

        我們首先要定義一個(gè)基類,也就是一個(gè)記錄結(jié)構(gòu):

      type
         TMember = record
           Name : string[10];
           eMail : string[20];
           Posts : LongInt;
         end;

        然后聲明一個(gè)記錄集,假設(shè)有5條記錄:
      var Members : array[1..5] of TMember;
        在我們讀寫我們的數(shù)據(jù)信息前,我們需要聲明一個(gè)基于我們記錄結(jié)構(gòu)的文件變量:
      var F : file of TMember;
        注:在Delphi里,我們聲明一個(gè)文件變量的一般格式就是:
      var SomeTypedFile : file of SomeType;
        這里所說的基類(Some Type),比如可以是Double、數(shù)組、記錄。但不能是長字符串格式、動(dòng)態(tài)數(shù)組、類類型以及指針。
        接下來我們要把我們的“數(shù)據(jù)庫”文件鏈接到我們的程序里去:
      AssignFile(F, ‘Members.dat‘) ;
        使用一個(gè)“文件”,我們需要這樣“打開”它,并調(diào)用Reset方法打開一個(gè)已存在于硬盤上的文件,用Rewrite方法去創(chuàng)建一個(gè)新文件。當(dāng)文件使用完畢,關(guān)閉應(yīng)用程序之前,我們要記得用CloseFile方法“關(guān)閉”它。如果忘記關(guān)閉,將引起一個(gè)I/O錯(cuò)誤。當(dāng)文件句柄被關(guān)閉,此前對(duì)它的所有更新操作將應(yīng)用。
        (譯者注:上面所說的“文件”,不僅僅包括磁盤文件,而且包括串口、打印機(jī)、其他設(shè)備……這些都是“文件”。)

      寫入到文件

        假設(shè)我們已經(jīng)填充了Members里的5條記錄。那么,接下來就是把這5條記錄寫入磁盤文件的代碼:
      var
         F : file of TMember;
         i : integer;
      begin
      AssignFile(F,‘members.dat‘) ;
      Rewrite(F) ;
      try
         for i:= 1 to 5 do
          Write (F, Members[i]) ;
      finally
         CloseFile(F) ;
      end;
      end;

      從磁盤文件讀出所有記錄

      var
         Member: Tmember;
         F : file of TMember;
      begin
      AssignFile(F,‘members.dat‘) ;
      Reset(F) ;
      try
         while not Eof(F) do begin
          Read (F, Member) ;
          {DoSomethingWithMember;}
         end;
      finally
         CloseFile(F) ;
      end;
      end;
        注:EOF是文件的結(jié)束標(biāo)志。我們通過判斷它的真假,來知道哪里是文件里最后的一條記錄。

      Seeking and Positioning

        文件記錄通常是要不斷更新的。在一般情況下,我們讀寫一條記錄后,游標(biāo)立即指向下一條記錄。我們可以用下面的方法實(shí)現(xiàn)在記錄間自由移動(dòng)游標(biāo):

      { 回到文件頭,即第1條記錄 }
      Seek(F, 0) ;

      { 跳到第3條記錄 }
      Seek(F, 3) ;

      { 跳到文件尾,即最后一條記錄的后面 }
      Seek(F, FileSize(F)) ;

      記錄的更新

        前面我們僅僅學(xué)習(xí)了如何讀寫記錄。那么如果我們要求找到第10條記錄,然后把這條記錄的某個(gè)字段(如:Email)修改一下,怎么做?請(qǐng)看下面的代碼:

      procedure ChangeEMail(const RecN : integer; const NewEMail : string) ;
      var DummyMember : TMember;
      begin
      { assign, open, exception handling 模塊略 }
      Seek(F, RecN) ;
      Read(F, DummyMember) ;
      DummyMember.Email := NewEMail;
      { 此時(shí)游標(biāo)已下移,我們需要重新返回游標(biāo)位置 }
      Seek(F, RecN) ;
      Write(F, DummyMember) ;
      { 關(guān)閉文件 }
      end;

      結(jié)束語
        至此,我們已經(jīng)知道如何寫記錄到磁盤文件,如何讀取,如何僅僅改變文件中間某條記錄的一部分?jǐn)?shù)據(jù)。  
      http://www./keylife/images/u229024/Sample1.rar
      http://www./keylife/images/u229024/Sample2.rar  

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多