Delphi 文件

来源:互联网 发布:音乐慢放编辑软件 编辑:程序博客网 时间:2024/05/28 22:12
文件的打开与关闭  
   
  AssignFile   : 把一个外部文件名和一个文件变量相关联  
  Reset     :打开一个存在的文件  
  Rewrite         :创建并打开一个新文件(或覆盖原有文件)  
  Append       : 以添加方式打开一个文件(只适用于文本文件)  
  CloseFile     : 关闭一个打开的文件  
  FileOpen     :打开一个特定的文件并返回文件句柄  
  FileCreate     :创建一个给定文件名的文件并返回文件句柄  
   
  FileClose     : 关闭一个特定句柄的文件  
   
  后边三个文件主要供系统内部使用,在文件复制的编程中也往往会用到。它们操作的对象是文件句柄而不是文件变量。  
   
  6.1.4.2   文件定位  
   
  Seek : 把文件当前位置移到指定部分  
  FilePos : 返回文件的当前位置  
  Eoln : 返回行结束标志  
  EOF : 返回文件结束标志  
  FileSeek :     改变当前文件指针的位置  
           
          Seek与FileSeek的区别是:1.   Seek仅用于记录文件;2.   FileSeek的参数是文件句柄、偏移量、起始位置。其中起始位置有文件首、当前位置、文件尾三种选择。Seek的参数是文件变量、偏移量,偏移量是从文件首开始定位的。3.   FileSeek的偏移量以字节数来计算,而  
  Seek是根据记录号进行移动。    
   
  Seek、FilePos仅用于记录文件。但任何文件都可以看作是基于字节的记录文件。下面一段程序表示了它们的用法。  
     
  {   该例子的设计界面为一个包含TOpenDialog部件的窗体。}  
   
  uses   Dialogs;  
  var  
        f:   file   of   Byte;  
        size:   Longint;  
        S:   String;  
        y:   Integer;  
    begin  
        if   OpenDialog1.Execute   then    
                begin  
            AssignFile(f,   OpenDialog1.FileName);  
            Reset(f);  
            size   :=   FileSize(f);  
            S   :=   'File   size   in   bytes:   '   +   IntToStr(size);  
   
            y   :=   10;  
            Canvas.TextOut(5,   y,   S);  
            y   :=   y   +   Canvas.TextHeight(S)   +   5;  
            S   :=   'Seeking   halfway   into   file...';  
            Canvas.TextOut(5,   y,   S);  
            y   :=   y   +   Canvas.TextHeight(S)   +   5;  
            Seek(f,size   div   2);  
            S   :=   'Position   is   now   '   +   IntToStr(FilePos(f));  
            Canvas.TextOut(5,   y,   S);  
            CloseFile(f);  
        end;  
    end.  
   
  6.1.4.3   文件删除与截断  
   
  Erase : 删除一个存在的文件  
  DeleteFile : 删除一个文件  
   
  Truncate : 从文件当前位置将文件截断  
   
  Erase与DeleteFile的区别是:Erase以文件变量为参数,当文件不能删除时引起一个异常;DeleteFile以文件名为参数,当文件不存在或不能删除时返回False,而并不引起一个异常。  
   
  6.1.4.4   文件名操作  
   
  Rename :文件更名,以文件变量为操作对象  
  RenameFile :文件更名,参数为文件的原名和新名  
  ChangeFileExt         :改变文件扩展名  
  ExpandFileName :返回文件全路径名  
   
  ExtractFileExt         :返回文件扩展名  
  ExtractFileName :从全路径名中返回文件名  
  ExtractFilePath :返回特定文件的路径  
   
  6.1.4.5   文件属性  
   
  FileGetAttr :返回文件属性  
  FileSetAttr :设置文件属性  
   
  6.1.4.6   文件状态  
   
  FileSize :返回文件对象大小  
  IOResult :返回上一次I/O操作的状态  
  FileExists         :检测文件是否存在  
   
  6.1.4.7   文件日期  
   
  DateTimeToFileDate :把Delphi日期格式转换为DOS日期格式  
   
  FileDateToDateTime :把DOS日期格式转换为Delphi日期格式  
  FileGetDate :返回文件的DOS日期时间戳  
  FileSetDate :设置文件的DOS日期时间戳  
   
  6.1.4.8   文件读写  
   
  Read,Readln :从文本或记录文件中读取变量  
  Write :将指定变量写入文本或记录文件  
  Writeln :将指定变量写入文本文件并写入一个行结束标志  
  FileRead :从一个指定文件中读取变量  
  FileWrite         :向指定文件写入数据  
   
  FileRead和FileWrite都是以文件句柄为操作对象,主要供系统内部使用。  
   
  6.1.4.9   目录操作  
   
  MkDir :创建当前目录的子目录  
  ChDir :改变当前目录  
  GetDir :返回特定磁盘的当前目录  
  RmDir :删除一个空子目录  
   
  6.1.4.10   磁盘操作  
   
  DiskFree :返回磁盘自由空间  
  DiskSize :返回特定磁盘的大小  
   
  6.1.4.11   文件查找  
   
  FileSearch :查找目录中是否存在某一特定文件  
   
  FindFirst         :在目录中查找与给定文件名(可以包含匹配符)及属性集相匹配                                   的第一个文件  
  FindNext :返回符合条件的下一个文件  
  FindClose         :中止一个FindFirst   /   FindNext序列  
   
  有关文件管理标准过程/函数的更详细资料,请查阅Delphi相关的Help主题。以上的大部分过程在后面都有应用实例,读者可以从中体会其用法。  
  在Delphi的联机帮助Help系统中把有关文件的过程/函数分为两个主题:I/O   Routine  
  和File   _Management   Routine。前者大部分以文件变量为操作对象,而后者大部分以文件名或文件句柄为操作对象。这里为了方便读者的使用,我们按功能重新进行了分类。在下一节中主要应用I/O   Routine主题下的过程,而在第四节的综合举例中主要应用File_Management   Routine主题下的过程。  
   
  另外,Windows提供了许多有关文件管理的API函数。虽然在一般情况下,利用  
  Delphi提供的函数已足够解决问题,但有时候仍然需要使用Windows   API。在(6.4.4.2)中我们就用到了Windows   API函数GetDriveType。有关Windows   API函数的情况,请读者参阅相关的资料,这里不再进行介绍。