第11章-文件管理ppt课件(全).ppt

上传人:可**** 文档编号:76388825 上传时间:2023-03-10 格式:PPT 页数:91 大小:5.80MB
返回 下载 相关 举报
第11章-文件管理ppt课件(全).ppt_第1页
第1页 / 共91页
第11章-文件管理ppt课件(全).ppt_第2页
第2页 / 共91页
点击查看更多>>
资源描述

《第11章-文件管理ppt课件(全).ppt》由会员分享,可在线阅读,更多相关《第11章-文件管理ppt课件(全).ppt(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第11章 文件管理11.1文件管理组件文件管理组件 11.1.1TFileListBox组件 11.1.2TDirectoryListBox组件 11.1.3 DriveCombobox组件 11.1.4 FilterCombobox组件 11.1.5 ShellTreeView组件 11.1.6 ShellCombobox组件 11.1.7 ShellListView组件11.2 文件管理的相关函数和过程文件管理的相关函数和过程 11.2.1 RenameFile函数 11.2.2 DeleteFile函数 11.2.3 FileExists函数 11.2.4 FileGetAttr函数 1

2、1.2.5 FileSetAttr函数 11.2.6 DirectoryExists函数 11.2.7 CreateDir函数 11.2.8 RemoveDir函数11.3 文件管理操作文件管理操作 11.3.1 文件类型 11.3.2 适合于各种文件的操作 11.3.3 文本文件的操作 11.3.4 有类型文件的操作11.4 小结小结11.5 习题习题文件是同一类型元素的有序集合,是内存与外设间传输数据的渠道。一些外设如显示器、键盘、打印机等都可以看作文件,但最常用的还是磁盘文件,这也是本章我们主要讨论的对象。Delphi继承了Object Pascal的文件管理功能,并有很大的发展,其中最

3、主要的是提供了用于文件管理的标准组件,同时也提供了更多的文件管理函数。本章首先介绍Delphi提供的文件组件的使用方法,然后是Delphi文件管理的标准过程/函数,最后介绍文件访问具体操作。11.1 文件管理组件Delphi提供了丰富的文件管理组件,主要有两种风格。一种为位于Delphi组件面板Tool Palette的Win3.1选项卡上的TFileListBox、TDirectoryListBox、TDriveCombobox、TFilterCombobox四个组件,为传统的Windows 3.x风格;另一种为位于Sample选项卡上的TShellListView、TShellCombob

4、ox、TShellTreeView三个组件,为Windows 9X风格。使用它们可以很方便的编写类似Windows资源管理器程序。11.1.1 FileListBox组件该组件的功能是在应用程序窗体上提供一个文件列表框,显示指定目录下的文件列表。它和其他它三个组件联合使用,可以为用户提供磁盘上所有文件查看和选择功能。FileListBox类和ListBox类都是由CustomListBox类派生而来,因此它们用法有很多相同之处,这里只介绍它独有的属性。1Directory属性:该属性用来指定包含TFileListBox组件内所显示文件的文件夹名。改变该属性的文件夹名,则文件列表框中将显示此文件

5、夹所包含的文件。2Drive属性:该属性用来指定包含TFileListBox组件内所显示文件的驱动器名。改变该属性的驱动器名,TFileListBox组件的Directory属性自动改为此驱动器下的当前目录。3FileEdit属性:该属性指定一个与文件列表框组件关联的Edit组件。当用户在文件列表框组件中选择文件时,被选择文件的文件名(FileName属性值)将显示在Edit组件中;如果当前没有文件被选取,则该Edit组件中将显示当前的Mask属性值(Mask属性的作用后面将有详细介绍),就像标准的Windows中的打开和保存对话框中的功能。用户对Edit组件的Text属性所做的直接修改不会影

6、响到文件列表框组件,但可以通过调用ApplyFilePath方法用修改后的Text属性值更新文件列表框组件的当前设置。4FileName属性:该属性返回文件列表框中用户选择的文件名,包含路径信息。可以通过设置该属性把文件列表框初始化为选中某个特定文件;读取该属性则可以获取用户选择的文件名。如果文件列表框关联了Edit(即设置了FileEdit属性),FileName属性值将显示在该组件中。5FileType属性:该属性指定将在文件列表框中显示名称的文件的属性。该属性定义如下:property FileType:TFileType;且有如下类型定义:type TFileAttr=(ftReadO

7、nly,ftHidden,ftSystem,ftVolumeID,ftDirectory,ftArchive,ftNormal);TFileType=set of TFileAttr;其中文件类型的可选值及其意义如表11-1:表11-1 文件类型可选值及意义值值意意 义义ftReadOnly文件列表框中显示只读类型的文件ftHidden文件列表框中显示隐藏类型的文件ftSystem文件列表框中显示系统类型的文件ftVolumeID未用ftDirectory文件列表框中显示目录ftArchive文件列表框中显示存档类型的文件ftNormal文件列表框中显示普通的文件6Mask属性:该属性用来设置

8、文件列表框中将显示文件的过滤条件。如果设置该属性,则指定文件夹下只有满足该过滤条件的文件名才会在文件列表框中显示。其值是含有文件通配符的文件名。其中“*”表示任意字符串,而“?”表示任意一个字符。例如“*.*”表示所有文件,也是该属性的默认值。7ShowGlyphs属性:该属性为Boolean类型,当值为True时,表示在文件列表框显示的文件名旁同时显示表示其类型的文件图标;当值为False时,则只显示文件名而不显示该图标。11.1.2 DirectoryListBox组件该组件的功能是在应用程序窗体上提供一个目录列表框,显示指定驱动器下的目录树结构。该类同样由TCustomListBox类派

9、生而来,这里只介绍其独有属性。1CaseSensitive属性:该属性为Boolean类型,用来指定文件系统对于文件名的大小写是否敏感。取值True是为大小写敏感,False则不区分大小写。2Directory属性:该属性用来返回目录列表框中打开的当前目录名。3DirLabel属性:该属性指定一个与目录列表框组件关联的abel组件。当用户在目录列表框组件中选择目录,被选择目录的目录名(Dierctory属性值)将作为该Label组件的标题显示。4Drive属性:该属性指定目录列表框所显示的目录树结构属于哪一个驱动器。如果该值发生改变,则目录列表框将显示指定驱动器的目录树,且自动打开指定驱动器下

10、的当前目录。5FileList属性:该属性用来指定一个与目录列表框相关联的文件列表框组件,以显示目录列表框中所选当前目录下的文件。一旦文件列表框与目录列表框建立起关联,则文件列表框的Directory属性值、Dirve属性值将会随着目录列表框的相关属性值的改变而自动改变。即,当目录列表框中的当前目录发生改变时,文件列表框会自动显示修改后的当前目录下的文件。11.1.3 DriveCombobox组件该组件功能是在应用程序窗体上提供一个驱动器组合列表框,供用户选择驱动器。因TDriveCombobox类和TCombobox类都是由TCustomCombobox类派生而来,所以它们用法有很多相同之

11、处,这里只介绍TDriveCombobox独有的几个属性。1DirList属性:该属性用来指定一个与驱动器组合列表框相关联的目录列表框,以显示指定驱动器下的目录树结构。关联建立后,当驱动器组合列表框中所选驱动器发生改变,则关联的目录列表框的Drive属性、Directory会自动改变,即自动显示所选驱动器下的目录树结构,自动打开指定驱动器下的当前目录。2Drive属性:返回用户选择的驱动器名。在设计期指定该值可以将TDriveCombobox初始化为指向某个特定的驱动器。3TextCase属性:该属性指定列表框中显示驱动器名的字母是大写还是小写。11.1.4 FilterCombobox组件该

12、组件的功能是提供给用户一个选择文件过滤属性的选择框。主要属性如下:1FileList属性:该属性用来指定一个与过滤属性选择框关联的文件列表框组件,以限制该文件列表框显示文件的类型。一旦建立关联,文件列表框中所显示文件将随过滤属性的改变而自动变化。2Filter属性:该属性用于设置和保存用户设置的文件过滤条件列表。该列表可以在设计期用FilterEditer编辑,也可以在运行时通过代码来设置。其格式如下例:FilterComboBox1.Filter:=Text files|*.TXT;FilterComboBox1.Filter:=Text files(*.TXT)|*.TXT|Pascal

13、files(*.PAS)|*.PAS;FilterComboBox1.Filter:=All files|*.TXT;*.PAS;*.WB1;3Mask属性:该属性返回用户当前所选择的过滤条件。如果关联了文件列表框组件,则文件列表框的ask属性值会随该属性值的变化自动变化。例11-1 磁盘文件浏览器利用上述几个组件,可以很方便的制作一个Win3.1风格的磁盘文件浏览器。步骤如下:1新建一个VCL Forms Application-Delphi for Win32工程,在Tool Palette的win3.1页上找到以上几个组件添加到窗体上,就用默认名字。2修改DriveCombobox1的D

14、irList属性为DirectoryListBox1。3修改DirectoryListBox1的FileList属性为FileListBox1。4修改FilterCombobox1的FileList属性为FileListBox1,并修改其Filter属性,指定文件过滤条件。5运行程序运行界面如图11-1:图11-1 磁盘文件浏览器界面11.1.5 ShellTreeView组件ShellTreeView组件显示一个Windows资源管理器样式的文件夹树状列表,使用它可以很方便的制作和Windows资源管理器一模一样的文件夹树状浏览程序。因该组件由CustomTreeView派生而来,这里只介绍

15、其主要属性。1.AutoContextMenus属性:该属性是Boolean类型,用来指定TShellTreeView组件是否根据右键单击的对象自动显示系统菜单。默认值为True,表示当右键单击组件内显示的某个对象时,组件会根据该象的类型显示相应的系统菜单。2.AutoRefresh属性:该属性是Boolean类型,用来指定ShellTreeView组件是否根据系统资源改动情况自动更新显示。默认值是False。3.ObjectTypes属性:该属性是一个集合属性,用来指定ShellTreeView组件中显示的系统资源类型。类型定义如下:FObjectTypes:TShellObjectType

16、s;TShellObjectTypes=set of TShellObjectType;TShellObjectType=(otFolders,otNonFolders,otHidden);其中otFolders表示文件夹对象,otNonFolders表示非文件对象,otHidden表示具有隐藏属性的对象。下面图11-2和图11-3就是该属性值别取otFolders和otFolders,otNonFolders时的情况:图11-2图11-34.Root属性:该属性指定一个文件夹作为TShellTreeView组件的根结点,该文件夹可以是一个系统文件夹,也可是用户指定任一磁盘路径。默认值为rfD

17、esktop,即将“桌面”作为根结点,如上图所示。5.ShowButtons、ShowShellImages、ShowLines属性:这三个属性都是Boolean类型,分别用来指定TShellTreeView组件是否显示对象树中的展开或收缩按钮、系统图标、连接虚线。默认值都为True,表示显示这些元素,如上图。6.ShellCombobox、ShellListView属性:这两个属性分别用来指定和TShellTreeView组件相关联的TShellCombobox组件和TShellListView组件。设置过该属性后,当TShellTreeView组件中选中的对象发生变化时,与之关联的TShe

18、llCombobox组件和TShellListView组件中的显示内容会自动更新。11.1.6 ShellCombobox组件TShellCombobox组件用来显示一个Windows资源管理器样式的对象下拉列表框,如下图11-4:图11-4 ShellCombobox组件该组件的重要属性主要有三个,Root、ShellListView、ShellTreeView,用法与TShellTreeView类似,这里不再重复。11.1.7 ShellListView组件TShellListView组件用来显示一个Windows资源管理器样式的对象列表框,如图11-5。下面介绍它的重要属性。图11-5

19、ShellListView组件1.AutoContextMenus、AutoRefresh、Root、ObjectTypes、ShellCombobox、ShellTreeView:这些属性的功能与用法类似TShellTreeView、TShellCombobox组件,这里不再重复。2.ViewStyle:该属性是枚举类型,用来指定TShellListView组件显示对象信息的方式。相关定义如下:FViewStyle:TViewStyle;TViewStyle=(vsIcon,vsSmallIcon,vsList,vsReport);四个取值分别表示以大图标、小图标、列表、详 细信息方式显示对

20、象信息,类似Windows资源管 理器中的“查看”选项。3.ShowColumnHeaders:该属性为Boolean类型,只有在ViewStyle属性值为vsReport时才有效,用来指定是否显示详细信息的列标题。默认值为True,表示显示详细信息的列标题。4.ColumnClick:该属性为Boolean类型,只有在ViewStyle属性值为vsReport且ShowColumn属性为True时才有效,用来指定是否充许单击详细信息的列标题。默认值为True,表示可以单击详细信息的列标题。5.GridLines:该属性为Boolean类型,只有在ViewStyle属性值为vsReport时才

21、有效,用来指定是否显示详细信息列表的网格线。默认值为False,表示不显示详细信息列表的网络线。6.RowSelect:该属性为Boolean类型,只有在ViewStyle属性值为vsReport时才有效,用来指定当鼠标单击列表中某个对象时,是否整行选中该对象的详细信息(高亮显示)。默认值为False,表示当鼠标单击列表中某个对象时,只选中该对象本身。7.HotTrack:该属性为Boolean类型,用来指定是否自动选中(高亮显示,此时可敲击回车键打开该对象)组件中当前鼠标位置处的对象。默认值为False,表示不自动选中当前鼠标位置处的对象。8.MultiSelect:该属性为Boolean类

22、型,用来指定是否充许同时选中对象列表中的多个对象。默认值为False,表示不自动选中当前鼠标位置处的对象。如果为True,则可以支持扩展选择功能实现对象多选。9.Sorted:该属性为Boolean类型,用来指定是否对列表中的对象按名称排序。默认值为True。例11-2“我的资源管理器”示例程序利用上述几个组件,可以很方便的制作一个Win9X风格的磁盘文件浏览器。步骤如下:1.新建一个VCL Forms Application-Delphi for Win32工程,在Tool Palette的Sample页上找到以上几个组件添加到窗体上,就用默认名字。2.修改ShellTreeView组件的S

23、hellCombobox属性指向添加的TShellCombobox组件,TShellListView属性指向添加的TShellListView组件;修改TShellCombobox组件的ShellListView属性指向添加的TShellListView组件。3.其它属性根据需要设置。4.添加五个按钮,分别修改其标Caption属性为“向上”、“新建”、“删除”、“转到”、“改名”,如下图程序界面。5.为TShellListView组件添加右键弹出菜单,菜单项如下图所示。6.编写相应的码,调试运行。程序运行界面如图11-6:图11-6 自制资源管理程序界面源代码:var i:integer=1

24、;/自定义全局变量 /自定义删除文件夹的函数 function TForm1.Deltree(path:string):Boolean;var SearchRec:TSearchRec;olddir:string;begin if DirectoryExists(path)then begin oldDir:=GetCurrentDir;ChDir(path);FindFirst(.,faAnyFile,SearchRec);repeat FileSetAttr(SearchRec.Name,0);if(SearchRec.Attr and faDirectory 0)then begin i

25、f(SearchRec.Name1.)then if(not Deltree(SearchRec.Name)then break;end else if(not DeleteFile(SearchRec.Name)then break;until(FindNext(SearchRec)0);ChDir(.);Result:=ReMoveDir(path);SetCurrentDir(oldDir);end else Result:=False;end;/“向上”功能实现procedure TForm1.SpeedButton1Click(Sender:TObject);begin shelll

26、istview1.Back;end;/“新建”文件夹功能procedure TForm1.SpeedButton2Click(Sender:TObject);var s:string;begin s:=shellcombobox1.Path+新建文件夹+inttostr(i);if directoryexists(s)then begin i:=i+1;s:=shellcombobox1.Path+新建文件夹+inttostr(i);end;mkdir(s);i:=i+1;end;/“删除”功能实现procedure TForm1.SpeedButton3Click(Sender:TObjec

27、t);var s:string;begins:=shelllistview1.Foldersshelllistview1.Selected.index.PathName;if(filegetattr(s)and fadirectory)=fadirectory then tryrmdir(shelllistview1.Foldersshelllistview1.Selected.index.PathName);except showmessage(删除目录失败!请确认目录是否非空!);exit;end else try deletefile(s);except showmessage(删除文件

28、失败!访问被拒绝!);exit;end;shelllistview1.Update;end;/“转到”功能实现procedure TForm1.SpeedButton4Click(Sender:TObject);var s:string;begin if selectdirectory(请选择要转到的文件夹,rfdesktop,s)then if directoryexists(s)then shelltreeview1.Path:=s;end;/“重命名”功能实现procedure TForm1.SpeedButton5Click(Sender:TObject);begin if shell

29、listview1.SelCount=1 then shelllistview1.SelectedFolder.Rename(inputbox(重命名,请输入新文件名:,shelllistview1.Foldersshelllistview1.Selected.index.DisplayName);end;/“图标”查看方式procedure TForm1.N2Click(Sender:TObject);begin shelllistview1.ViewStyle:=vsicon;end;/“小图标”查看方式procedure TForm1.N3Click(Sender:TObject);be

30、gin shelllistview1.ViewStyle:=vssmallicon;end;/“列表”查看方式procedure TForm1.N4Click(Sender:TObject);begin shelllistview1.ViewStyle:=vslist;end;/“详细信息”查看方式procedure TForm1.N5Click(Sender:TObject);begin shelllistview1.ViewStyle:=vsreport;end;11.2 文件管理的相关函数和过程 Delphi中除了每上节中介绍的那些用于文件和目录管理的组件外,还提供了很多用于文件和目录操

31、作的标准函数或过程。熟练掌握并灵活使用这些标准过程,可以很方便的编写磁盘文件管理类的应用。本节介绍几个封装在SysUtils单元中的常用标准过程,有了这些作为基础,更多的标准过程的用法请读者根据其名称及参数自己尝试。11.2.1 RenameFile函数函数定义:function RenameFile(const OldName,NewName:string):Boolean;函数的功能是将文件改名。要改名文件的文件名由字符串常量参数OldName给出,而更改后的新文件名由字符串常量参数NewName指出。返回值为Boolean类型,表示改名操作是否完成。当改名操作成功时,返回值为False;

32、如果操作失败(如程序没有修改文件的权限),则返回值为False。需要注意的是,如果NewName参数指定的新文件名与已经存在的文件名冲突,则该函数在Windows系统和Linux系统下执行的操作不同:在Windows系统下,改名操作失败;在Linux系统下,该函数会覆盖已存在的文件。11.2.2 DeleteFile函数函数定义:function DeleteFile(const FileName:string):Boolean;函数功能是从磁盘上删除由字符串常量参数FileName指定文件名的文件。返回值为Boolean类型,表示删除操作是否完成。如果删除成功,则返回True;如果文件不能删

33、除或指定的文件不存在,则返回False。11.2.3 FileExists函数函数定义:function FileExists(const FileName:string):Boolean;该函数功能是判断由字符串常量参数FileName指定文件名的文件是否存在,返回值是Boolean类型。如果指定文件存在,则返回True,否则返回False。11.2.4 FileGetAttr函数函数定义:function FileGetAttr(const FileName:string):Integer;该函数功能是获取由字符串常量参数FileName指定名称的文件的文件属性,返回值是整型。该函数只能使

34、用在Windows平台。关于文件属性的描述,Delphi用一个32位二进制数最低8位的取值来表示。每一位表示一种属性,如果该位值为1,则表示具有该属性,为0则表示不具有该属性。高24位全部为0。为了使用方便,Delphi在SysUtils单元还定义了几个相应的常量值,如下:File attribute constants /此部分代码摘自Delphi源码SysUtils单元的定义 faReadOnly=$00000001 platform;faHidden=$00000002 platform;faSysFile=$00000004 platform;faVolumeID=$00000008

35、platform;faDirectory=$00000010;faArchive=$00000020 platform;faSymLink=$00000040 platform;faAnyFile=$0000003F;因此,函数FileGetAttr的返回值为Integer类型。通过该返回值,对照上述定义,就可以很方便的得到文件具有的属性。例如返回值为3,则文件具有只读和隐藏属性,如果返回值为6,则具有隐藏和系统属性。示例见例11-3 11.2.5 FileSetAttr函数函数定义:function FileSetAttr(const FileName:string;Attr:Integer

36、):Integer;该函数功能是设置由字符串常量参数FileName指定名称的文件的文件属性,新的文件属性由参数Attr给出。返回值是整型。该函数只能使用在Windows平台。例11-3 查看文件属性的程序程序功能类似于Windows资源管理器中文件对象的右键菜单中的“属性”菜单项,在文件列表框中单击选中某个文件,下面的文件属性组合框中,该文件所具有的属性相对应的复选框即处于选中状态。如果想修改文件属性,只需要修改相应的复选框的选中状态既可。程序运行界面如图11-7:图11-7 文件属性查看程序运行效果图源代码如下:var fileatt,newatt:word;/全局变量,分别用来保存原来的

37、文件属性,和要修改的文件属性/在文件列表框中,单击选中某个文件后,获取并显示该文件属性:procedure TForm1.FileListClick(Sender:TObject);begin readonlybox.Enabled:=true;systembox.Enabled:=true;hiddenbox.Enabled:=true;arrchbox.Enabled:=true;fileatt:=filegetattr(filelist.FileName);readonlybox.Checked:=(fileatt and fareadonly)=fareadonly;systembox

38、.Checked:=(fileatt and fasysfile)=fasysfile;hiddenbox.Checked:=(fileatt and fahidden)=fahidden;arrchbox.Checked:=(fileatt and faarchive)=faarchive;end;/加上或去掉只读属性procedure TForm1.readonlyboxClick(Sender:TObject);begin newatt:=filegetattr(filelist.FileName);if readonlybox.Checked then newatt:=newatt o

39、r fareadonly else newatt:=newatt and not fareadonly;filesetattr(filelist.FileName,newatt);end;/加上或去掉隐藏属性procedure TForm1.hiddenboxClick(Sender:TObject);begin newatt:=filegetattr(filelist.FileName);if hiddenbox.Checked then newatt:=newatt or fahidden else newatt:=newatt and not fahidden;filesetattr(f

40、ilelist.FileName,newatt);end;/加上或去掉系统属性procedure TForm1.systemboxClick(Sender:TObject);begin newatt:=filegetattr(filelist.FileName);if systembox.Checked then newatt:=newatt or fasysfile else newatt:=newatt and not fasysfile;filesetattr(filelist.FileName,newatt);end;/加上或去掉存档属性procedure TForm1.arrchbo

41、xClick(Sender:TObject);begin newatt:=filegetattr(filelist.FileName);if arrchbox.Checked then newatt:=newatt or faarchive else newatt:=newatt and not faarchive;filesetattr(filelist.FileName,newatt);end;11.2.6 DirectoryExists函数 函数定义:function DirectoryExists(const Directory:string):Boolean;该函数的功能是判断由字符

42、串常量参数Directory指定名称的文件夹是否存在,返回值是Boolean类型。如果指定文件夹存在,则返回True,否则返回False。如果指定的目录名是绝对路径,则该函数沿着参数指定的路径搜索指定的文件夹,否则该函数只在当前目录下搜索指定文件夹。注意:在仅限Windows系统下使用的FileCtrl单元中也包含有一个DirectoryExists函数,但是即使代码不需要跨平台使用,也不提倡使用该函数。11.2.7 CreateDir函数函数定义:function CreateDir(const Dir:string):Boolean;该函数用来创建一个由字符串常量参数Dir指定名称的目录,

43、返回值为Boolean类型。如果创建成功则返回True,否则返回Fales。11.2.8 RemoveDir函数函数定义:function RemoveDir(const Dir:string):Boolean;该函数用来删除一个由字符串常量参数Dir指定名称的空目录,返回值为Boolean类型。如果成功删除则返回True,否则返回Fales。注意:只有目录存在且是空目录才能用该方法删除。11.3 文件管理操作11.3.1 文件类型Delphi根据文件内数据元素的不同,将文件分为三种类型,即文本文件、类型文件和无类型文件。1文本文件Delphi中的文本文件是指由ASCII字符组成,按行存储的文

44、件,以回车符(通常还会有一个换行符)作为一行结束的标志。该类型文件变量声明方式如下:varTextFileVar:TextFile;文本文件是以行为单位进行读、写操作的。由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。而且文本文件只能单独以读或写的方式打开,在一个打开的文本文件上同时进行读、写操作是不允许的。2类型文件类型文件是指文件中的数据无素属于固定长度的数据类型,该数据类型即文件的类型。因此,文件类型不能是动态数据类型,比如长字符串、类、对象、指针、变量、其他文件以及包含有这些类型的构造类型。例如:type PhoneEntry=record First

45、Name,LastName:string20;PhoneNumber:string15;Listed:Boolean;end;PhoneList=file of PhoneEntry;上面代码中先定义一个名为PhoneEntry的记录类型,然后定义一个基于这种记录类型的文件类型PhoneList,用于定义存储多条电话记录的文件。也可以直接用file of 结构进行变量定义,如:var List1:file of PhoneEntry;3无类型文件无类型文件提供一个底层的I/O通道,主要用于对磁盘文件的直接访问,不需要理会文件的类型和结构。无类型文件只接用file关键词来声明即可,例如:var

46、DataFile:file;对于无类型文件来说,Reset和Write过程可以用一个额外的参数在数据传送时数据块的大小。基于历史的原因,块的大小默认为128字节。当该值为1时,才能准确的反映文件夹的大小,因为毕竟不是所有的文件长度都是128字节的整数倍。除了Reset和Write过程外,所有适合类型文件操作的标淮过程同样适用于无类型文件的操作。但是在高速数据传输时,可以用BlockRead和BlockWrite过程来替代Read和Write过程。关于这个两个过程的用法,请参阅联机帮助。11.3.2 适合于各种文件的操作1.文件的打开与关闭AssignFile:将一个外部文件名和一个文件变量建立

47、关联过程声明:procedure AssignFile(var F;FileName:string);其中,变量参数F为一任意类型的文件变量名,而常量字符串参数FileName则指定一个将要于文件变量F建立关联的外部文件名。该过程调用成功后,直至关闭,对于文件变量F的所有操作都将应用于FileName所指定的文件。如果FileName参数为空,则文件变量F将和标准的输入或输出文件建立关联,具体要看调用该过程之后调用的是Reset过程还是ReWrite过程。注意,不要对已经打开了的文件变量使用该操作。Reset:打开一个存在的文件过程声明:procedure Reset(var F:File;R

48、ecSize:Word );其中,F是一个已经用AssignFile过程与某个外部文件相关联的文件变量,RecSize参数只有在F是无类型文件时,用来指定数据传送过程中一次处理的数据块的大小,默认值是128字节。该过程用当前的文件访问模式(针对类型或无类型文件),打开一个文件名已和文件变量F相关联的已存在的外部文件。如果指定名称的文件不存在,或者不能用当前的访问模式访问,都将会返回一个错误结果。如果文件变量已经被打开,则会先关闭文件,然后再重新打开,将文件位置指针向文件的开始。注意:默认的文件访问模式是2(可读写)。如果没有把该模式设置为只读模式,则在试图打开只读属性的文件时会出错。如果文件变

49、量F之前关联的是一个空文件名,则调用Reset后,则F指向标准的输入文件如果文件变量F之前关联的是一个文本文件,则调用Reset后,该文本文件以只读模式打开调用Reset过程后,函数Eof(F)的值应该为False,除非F关联的文件是空文件。文件打开过程应用举例一var F:TextFile;S:string;begin if OpenDialog1.Execute then begin AssignFile(F,OpenDialog1.FileName);Reset(F);end;end;Rewrite:创建并打开一个新文件过程声明:procedure Rewrite(var F:File;

50、Recsize:Word );该过程参数的意义与用法与Reset相同,功能是创建一个新的文件并打开。如果指定名称的文件已经存在,则该过程先将其删除,再建立同名的空文件。注意:如果文件已经被打开,则该过程先关闭它,然后再重新创建该文件,并把文件位置指针指向空文件的开始处。如果文件变量F之前关联的是一个空文件名,则调用Rewrite后,则F指向标准的输出文件如果文件变量F之前关联的是一个文本文件,则调用Rewrite后,该文本文件以只写模式打开调用Rewrite过程后,函数Eof(F)的值总是True。CloseFile:关闭一个打开的文件过程声明:procedure CloseFile(var

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁