文件操作函数
c语言移动文件的原理

c语言移动文件的原理C语言移动文件的原理涉及到底层的文件操作和操作系统的文件系统管理。
本文将详细介绍C语言中移动文件的原理,包括文件操作函数、文件系统结构和移动文件的底层过程。
一、文件操作函数:在C语言中,文件操作是通过文件指针来实现的。
文件指针是一个指向FILE结构体的指针,该结构体保存了文件的信息,例如文件名、文件位置等。
C语言提供了一些文件操作函数来进行对文件的读写和管理,包括fopen、fclose、fread、fwrite、fseek等。
1. fopen函数fopen函数用于打开文件,并返回一个文件指针。
在移动文件之前,我们首先需要通过fopen函数打开文件。
fopen函数的原型如下:FILE *fopen(const char *filename, const char *mode);其中,filename是要打开的文件名,mode是文件的打开模式。
打开模式包括"r"(只读)、"w"(只写)、"a"(追加)、"rb"(二进制只读)等。
2. fclose函数fclose函数用于关闭文件,并释放对应的资源。
在移动文件完成后,我们需要通过fclose函数关闭文件。
3. fread和fwrite函数fread函数用于从文件中读取数据,fwrite函数用于将数据写入到文件中。
这两个函数对于移动文件来说不是必需的,但是它们在进行文件操作时非常常用。
4. fseek函数fseek函数用于设置文件的位置指针,即移动文件访问位置。
通过调用fseek函数,我们可以将文件指针定位到文件的任意位置,从而实现对文件的移动操作。
fseek函数的原型如下:int fseek(FILE *stream, long int offset, int whence);其中,stream是文件指针,offset是偏移量,即要移动的字节数,whence是起始位置。
C语言文件操作函数大全

C语言文件操作函数13.1C语言文件1,两种文件存取方式(输入,输出方式)顺序存取直接存取2,数据的两种存放形式文本文件二进制文件13.2文件指针定义文件类型指针变量的一般形式:FILE *指针变量名;例如:FILE *fp1,*fp2;13.3打开文件在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为:fopen(文件名,文件使用方式);此函数返回一个指向FILE类型的指针.如:FILE *fp;fp=fopen("file_1","r");如果调用成功,fp就指向file_1,否则返回为NULL,所以为了保证文件的正确使用,要进行测试.采用如下语句:If((fp=fopen("file_1","r"))==NULL){printf("Cannot open this file\n");exit(0);}最常用的文件使用方式及其含义如下:1,"r".为读而打开文本文件.(不存在则出错) 2,"rb".为读而打开二进制文件.3,"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖) 4,"wb".为写而打开二进制文件.5,"a".为在文件后面添加数据而打开文本文件.(若不存在,则新建;反之,在原文件后追加)6,"ab".为在文件后面添加数据而打开一个二进制文件.最常用的文件使用方式及其含义如下:7,"r+".为读和写而打开文本文件.(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变) 8,"rb+".为读和写而打开二进制文件.只是在随后的读写时,可以由位置函数设置读和写的起始位置. 9,"w+".首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失) 10,"wb+".功能与"w+"同.只是在随后的读写时,可以由位置函数设置读和写的起始位置.最常用的文件使用方式及其含义如下:11,"a+".功能与"a"相同;只是在文件尾部添加新的数据后,可以从头开始读.12,"ab+".功能与"a+"相同;只是在文件尾部添加新数据之后,可以由位置函数设置开始读的起始位置. 13.4关闭文件当文件的读写操作完成之后,使用fclose函数关闭文件.格式如下:fclose(文件指针)如:fclose(fp);13.5调用fgetc和fputc函数进行输入和输出1,调用fputc函数输出一个字符功能是:将字符ch写到文件指针fp所指的文件中去.当输出成功,putc函数返回所输出的字符;否则,返回一个EOF值.EOF是在stdio.h库函数文件中定义的符号常量,其值等于-1.13.5调用fgetc和fputc函数进行输入和输出例如:把从键盘输入的文本按原样输出到名为file_1.dat文件中,用字符@作为键盘输入结束标志. #includeVoid main(){FILE *fpout;char ch;if(fpout=fpopen("file_1","w")==NULL){printf("Cannot open this file!\n");exit(0);}ch=getchar();while(ch!='@'){ fputc(ch,fpout); ch=getchar(); }fclose(fpout);}2.调用fgetc函数输入一个字符功能是:从pf指定的文件中读如一个字符,并把它作为函数值返回.例如:把一个已存在磁盘上的file_1.dat文本文件中的内容,原样输出到终端屏幕上.#includevoid main(){FILE *fpin;char ch;if((fpin=fopen("file_1.dat","r"))==NULL){ printf("Cann't open this file!\n");exit(0);} ch=fgetc(fpin);while (ch!=EOF){ putchar(ch); ch=fgetc(fpin);}fclose(fpin);}13.6判断文件结束函数feofEOF可以作为文本文件的结束标志,但不能作为二进制文件的结束符.feof函数既可以判断二进制文件,又可以判断文本文件.例:编写程序,用于把一个文本文件(源)复制到另一个文件(目的)中,源文件名和目的文件名由命令行输入.命令形式如下:可执行程序名源文件名目的文件名#includevoid filecopy(FILE* ,FILE *);void main(int argc,char *argv[]){FILE *fpin,*fpout;if(argc==3){ fpin=fopen(argv[1],"r");fpout=fopen(argv[2],"w");filecopy(fpin,fpout);fclose(fpin);fclose(fpout);}else if(argc>3)printf("The file names too many!!\n";elseprintf("There are no file names for input or output!!\n );}void filecopy(FILE *fpin,FILE *fpout){char ch;ch=getc(fpin);while(!feof(fpin)){putc(ch,fpout); ch=getc(fpin);}}13.7fscanf函数和fprintf函数1,fscanf函数fscanf只能从文本文件中按格式输入,和scanf函数相似,只不过输入的对象是磁盘上文本文件中的数据.调用形式为:fscanf(文件指针,格式控制字符串,输入项表)例如:fscanf(fp,"%d%d",&a,&b);fscanf(stdin,"%d%d",&a,&b);等价于scanf("%d%d",&a,&b);3.fprintf函数fprintf函数按格式将内存中的数据转换成对应的字符,并以ASCII代码形式输出到文本文件中.Fprintf 函数和printf函数相似,只是将输出的内容按格式存放到磁盘的文本文件中.调用形式如下:fprintf(文件指针,格式控制字符串,输出项表)如:fprintf(fp,"%d %d",x,y);以下语句 fprintf(stdout,"%d %d",x,y)13.8fgets函数和fputs函数1,fgets函数fgets函数用来从文件中读入字符串.调用形式如下: fgets(str,n,fp);函数功能是:从fp所指文件中读入n-1个字符放入str 为起始地址的空间内;如果在未读满n-1个字符时,则遇到换行符或一个EOF结束本次读操作,并已str作为函数值返回. 13.8fgets函数和fputs函数2,fputs函数fput函数把字符串输出到文件中.函数调用形式如下: fputs(str,fp);注意:为了便于读入,在输出字符串时,应当人为的加诸如"\n"这样的字符串.#include <stdio.h>#include <iostream>int main(int argc, char *argv[]){char arr[10] ;char *ap = "hello!" ;FILE *fp ;if ((fp = fopen("hello.txt", "wt+")) == NULL) {printf("error!") ;exit(1) ;}fputs(ap, fp) ;rewind(fp) ; //fgets(arr, 10, fp) ;printf("%s\n", arr) ;fclose(fp) ;return 0 ;}13.9fread函数和fwrite函数例如有如下结构体:struct st{char num[8];float mk[5];}pers[30];以下循环将把这30个元素中的数据输出到fp所指文件中.for(i=0;i<30;i++)fwrite(&pers[i],sizeof(struct st),1,fp);13.9fread函数和fwrite函数以下语句从fp所指的文件中再次将每个学生数据逐个读入到pers数组中.i=0;fread(&pers[i],sizeof(struct st),1,fp);while(!feof(fp)){ i++;fread(&pers[i],sizeof(struct st),1,fp);}13.10文件定位函数1,fseek函数fseek函数用来移动文件位置指针到指定的位置上,接着的读或写操作将从此位置开始.函数的调用形式如下:fseek(pf,offset,origin)pf:文件指针offset:以字节为单位的位移量,为长整形.origin:是起始点,用来指定位移量是以哪个位置为基准的.1,fseek函数位移量的表示方法标识符数字代表的起始点SEEK_SET 0 文件开始SEEK_END 2 文件末尾SEEK_CUR 1 文件当前位置假设pf已指向一个二进制文件,则;fseek(pf,30L,SEEK_SET)fseek(pf,-10L*sizeof(int),SEEK_END)对于文本文件,位移量必须是0;如:fseek(pf,0L,SEEK_SET)fseek(pf,0L,SEEK_END)2. ftell函数ftell函数用以获得文件当前位置指针的位置,函数给出当前位置指针相对于文件开头的字节数.如;long t;t=ftell(pf);当函数调用出错时,函数返回-1L.我们可以通过以下方式来测试一个文件的长度: fseek(fp,0L,SEEK_END);t=ftell(fp);3.rewind函数调用形式为:rewind(pf);函数没有返回值.函数的功能是使文件的位置指针回到文件的开头.13.10文件应用在磁盘上的test.txt文件中放有10个不小于2的正整数,用函数调用方式编写程序.要求实现:1,在被调函数prime中,判断和统计10个整数中的素数以及个数.2,在主函数中将全部素数追加到磁盘文件test.txt的尾部,同时输出到屏幕上.#include#includeInt prime(int a[],int n){int I,j,k=0,flag=0;for(i=0;i { for(j=2;j if(a[i]%j==0){ flag=0; break;}else flag=1;if(flag){a[k]=a[i];k++;}}return k; }void main(){int n,I,a[10];FILE *fp;fp=fopen("test1-2.txt","r+");for(n=0;n<10;n++)fscanf(fp,"%d",&a[n]);n=prime(a,n);fseek(fp,o,2);for(i=0;i {printf("%3d",a[i]);fprintf(fp,"%3d",a[i]);}fclose(fp);}文件操作函数全clearerr(清除文件流的错误旗标)相关函数feof表头文件#include<stdio.h>定义函数void clearerr(FILE * stream);函数说明clearerr()清除参数stream指定的文件流所使用的错误旗标。
visual studio 文件操作函数

visual studio 文件操作函数Visual Studio是一款功能强大的集成开发环境(Integrated Development Environment,简称IDE),广泛用于开发各种类型的应用程序。
在Visual Studio中,文件操作是开发过程中非常常见和重要的一部分。
本文将介绍一些常用的Visual Studio文件操作函数,帮助开发者更加高效地处理文件相关操作。
一、文件创建与打开1. `CreateFile`函数:用于创建或打开一个文件。
该函数可以指定文件名、访问权限、共享模式等参数,并返回一个表示文件句柄的值。
2. `fopen`函数:用于打开一个文件,并返回一个指向该文件的指针。
通过该指针,可以进行文件读写操作。
二、文件读写操作1. `ReadFile`函数:用于从文件中读取数据。
该函数可以指定文件句柄、读取的字节数、读取数据的缓冲区等参数,并返回读取的字节数和读取结果。
2. `WriteFile`函数:用于向文件中写入数据。
该函数可以指定文件句柄、要写入的数据、写入的字节数等参数,并返回写入的字节数和写入结果。
3. `fgets`函数:用于从文件中读取一行数据。
该函数可以指定要读取的字节数、读取数据的缓冲区和文件指针,并返回指向读取数据的指针。
三、文件定位与指针操作1. `fseek`函数:用于定位文件指针的位置。
该函数可以指定文件指针、偏移量和起始位置,并返回定位结果。
2. `ftell`函数:用于获取文件指针的当前位置。
该函数可以指定文件指针,并返回当前位置的偏移量。
3. `rewind`函数:用于将文件指针重新定位到文件的起始位置。
该函数可以指定文件指针,并无返回值。
四、文件关闭与删除1. `fclose`函数:用于关闭一个已打开的文件。
该函数可以指定要关闭的文件指针,并返回关闭结果。
2. `remove`函数:用于删除一个文件。
该函数可以指定要删除的文件名,并返回删除结果。
windows中操作文件和目录的函数

windows中操作⽂件和⽬录的函数1、⽂件操作函数CreateFile();//创建或打开⽂件ReadFile();//从⽂件读WriteFile();//向⽂件写SetFilePointer();//设置⽂件指针CopyFile();//复制⽂件MoveFile();//移动或重命名⽂件DeleteFile();//删除⽂件2、⽂件属性函数GetFileSize();//获取⽂件⼤⼩GetFileTime();//获取⽂件或⽬录的时间信息,如创建时间、最后修改时间、最后访问时间SetFileTime();//设置⽂件或⽬录的时间信息GetFileAttributesEx();//获取⽂件属性SetFileAttributes();//设置⽂件属性3、⽂件的遍历和查找FindFirstFile();//查找第⼀个⽂件FindNextFile();//查找下⼀个⽂件FindClose();//关闭查找4、⽬录操作函数CreateDirectory();//创建⽬录,只能创建⼀层⽬录RemoveDirectory();//删除⼀个空⽬录5、判断⽂件或⽬录是否存在C中函数access()可以⽤来判断⽂件或⽂件夹是否存在。
函数原型: int access(const char *filename, int mode);所属头⽂件:#include <io.h>filename:可以填写⽂件夹路径或者⽂件路径mode:0 (F_OK)只判断是否存在2 (R_OK)判断写⼊权限4 (W_OK)判断读取权限6 (X_OK)判断执⾏权限⽤于判断⽂件夹是否存在的时候,mode取0,判断⽂件是否存在的时候,mode可以取0、2、4、6。
若存在或者具有权限,返回值为0;不存在或者⽆权限,返回值为-1。
错误代码EACCESS 参数pathname 所指定的⽂件不符合所要求测试的权限。
EROFS 欲测试写⼊权限的⽂件存在于只读⽂件系统内。
PB中文件操作函数大全

PB中文件操作函数大全文件操作是计算机程序设计中的一项基本操作,用于对文件进行读取、写入、修改、删除等操作。
在PB(PowerBuilder)中,提供了一系列的文件操作函数,用于方便地对文件进行处理。
下面是PB中常用的文件操作函数的详细介绍,共计1200字以上。
1. FileOpen 函数:作用:用于打开一个文件,返回文件句柄。
语法:FileOpen ( integer filehandle, string filename,integer mode )参数解释:- filehandle:打开文件的文件句柄,为整数型。
- filename:文件名,为字符串类型。
- mode:打开文件的模式,为整数型,常用的模式有以下几种:-1:只读方式打开文件。
-2:写入方式打开文件。
-3:追加方式打开文件。
2. FileClose 函数:作用:关闭一个已打开的文件。
语法:FileClose ( integer filehandle )参数解释:- filehandle:要关闭的文件句柄,为整数型。
3. FileRead 函数:作用:从一个已打开的文件中读取内容。
语法:FileRead ( integer filehandle, refany content, integer length )参数解释:- filehandle:要读取内容的文件句柄,为整数型。
- content:用于存储读取内容的变量,为任意类型的引用。
- length:要读取的内容长度,为整数型。
4. FileWrite 函数:作用:向一个已打开的文件中写入内容。
语法:FileWrite ( integer filehandle, any content )参数解释:- filehandle:要写入内容的文件句柄,为整数型。
- content:要写入的内容,为任意类型。
5. FileDelete 函数:作用:删除指定的文件。
语法:FileDelete ( string filename )参数解释:- filename:要删除的文件名,为字符串类型。
verilog 文件操作函数

在Verilog中,文件操作函数主要用于读取和写入文件。
这些函数使得Verilog能够与外部文件进行交互,例如读取初始化文件、写入仿真输出等。
以下是一些常用的Verilog文件操作函数:1. **$fopen(file, mode):**- 打开文件,返回一个文件句柄。
- `file` 是文件名,`mode` 是文件打开模式("r"表示只读,"w"表示只写,"a"表示追加,等等)。
```verilogreg [7:0] file_handle;initial beginfile_handle = $fopen("example.txt", "w");// 在这里执行文件操作$fclose(file_handle);end```2. **$fclose(file):**- 关闭之前打开的文件。
- `file` 是文件句柄。
3. **$fwrite(file, format, ...):**- 格式化写入文件。
- `file` 是文件句柄,`format` 是格式字符串,`...` 是要写入文件的数据。
```verilogreg [7:0] file_handle;initial beginfile_handle = $fopen("output.txt", "w");$fwrite(file_handle, "Data: %0d, %b", 10, 4'b1010);$fclose(file_handle);end```4. **$fdisplay(file, format, ...):**- 类似于`$fwrite`,但输出到仿真控制台而不是文件。
5. **$fscanf(file, format, ...):**- 格式化读取文件。
c语言 文件操作函数

c语言文件操作函数C语言文件操作函数C语言文件操作函数是C语言提供的一种文件操作方式,可以通过这些函数来读取、写入和修改文件。
文件操作函数可以帮助我们完成很多与文件有关的任务,比如读取配置文件、保存用户数据等。
在本文中,将介绍C语言中常用的文件操作函数。
打开文件在C语言中,我们可以使用fopen()函数来打开一个文件。
该函数的原型如下:FILE *fopen(const char *filename, const char *mode);其中,filename表示要打开的文件名,mode表示打开文件的模式。
mode的取值如下:- "r":以只读方式打开文件- "w":以写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则清空该文件- "a":以写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则在文件末尾追加数据- "r+":以读写方式打开文件,文件必须存在- "w+":以读写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则清空该文件- "a+":以读写方式打开文件,如果文件不存在,则创建该文件;如果文件已存在,则在文件末尾追加数据例如,我们可以使用以下代码来打开一个名为example.txt的文件:FILE *fp;fp = fopen("example.txt", "w+");if (fp == NULL) {printf("Open file failed!\n");}在打开文件之后,我们可以使用fclose()函数来关闭文件,释放文件资源。
例如:fclose(fp);读取文件在C语言中,我们可以使用fscanf()函数从文件中读取数据。
该函数的原型如下:int fscanf(FILE *stream, const char *format, ...);其中,stream表示要读取数据的文件,format表示数据的格式。
C语言文件操作与输入输出

C语言文件操作与输入输出随着计算机科学和编程的不断发展,文件操作和输入输出(I/O)是编程中非常重要的方面之一。
C语言作为一种广泛应用于系统软件和嵌入式开发的高级编程语言,也提供了一系列的函数和库来处理文件操作和输入输出。
本文将介绍C语言中的文件操作以及输入输出的相关知识。
一、文件概念及文件操作1. 文件概念在计算机领域中,文件是用于存储和组织数据的一种重要方式。
可以将文件看作是一种包含了数据的序列,这些数据可以是文本、图像、音频等形式。
在C语言中,文件以字节流的形式进行读取和写入。
2. 文件操作函数C语言提供了丰富的文件操作函数,用于打开、关闭、读取和写入文件。
下面是一些常用的文件操作函数:- fopen():用于打开文件,并返回一个指向该文件的指针。
- fclose():用于关闭文件。
- fgetc():用于从文件中读取一个字符。
- fputc():用于向文件中写入一个字符。
- fgets():用于从文件中读取一行文本。
- fputs():用于向文件中写入一行文本。
- fread():用于从文件中读取一定数量的数据块。
- fwrite():用于向文件中写入一定数量的数据块。
3. 文件打开模式在使用fopen()函数打开文件时,我们需要指定文件的打开模式。
常见的文件打开模式有:- "r":只读模式,用于读取文件的内容。
- "w":写入模式,如果文件不存在则创建文件,如果文件已存在则清空文件内容。
- "a":追加模式,用于向文件末尾追加内容。
- "rb":二进制只读模式,用于读取二进制文件。
- "wb":二进制写入模式,用于写入二进制文件。
二、输入输出(I/O)1. 标准输入输出C语言提供了三个标准的文件指针,它们分别是stdin、stdout和stderr。
它们对应于标准输入、标准输出和标准错误输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
var file_name:string;file_name:='c:\luther.gliethttp.txt';FileWrite(com.log_fd, PChar(file_name)^, length(file_name));文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道。
文件的本质是一个数据流,所有的文件实际上是一串二进制序列。
文件管理包括:1、文件操作。
2、目录操作。
3、驱动器操作。
三部分。
1、常见文件操作函数和过程。
1.1、AssignFile过程作用:将一个外部文件的文件名与一个File类型的变量关联,并对变量进行初始化。
原型:procedure AssignFile(var F; FileName: String);F:一个File类型的变量,可以是任何数据类型。
FileName:外部文件的文件名。
1.2、FileExists函数作用:用于测试指定文件名的文件是否存在。
原型:function FileExists(const FileName: String): Boolean;FileName:文件名。
字符串类型。
注意:如果文件存在,返回True;否则,返回False。
1.3、Append过程作用:为在一个已经存在的文件末尾添加文本做好准备工作。
文件是只写方式打开的。
原型:procedure Append(var F: Text);F: 一个TextFile类型变量。
注意:这是一个对文本类型文件操作的过程。
其中变量F必须和外部文件关联。
如果F没有与外部文件关联,将抛出异常。
如果F已经处于打开状态,则过程会关闭F并重新打开。
文件指针位置将被设置在文件末尾。
1.4、Reset过程作用:对于文本文件,Reset过程将以只读方式打开文件。
对于类型文件和无类型文件,Reset 过程将以可读写方式打开文件。
打开已存在文件,打开不存在文件用Rewrite原型:procedure Reset(var F [: File; RecSize: Word ] );F:File类型变量,可以是任何文件类型。
RecSize:文件的大小。
它是一个可选的选项,只有当F为无类型文件时才可以被指定。
如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。
如果参数RecSize被省略了,则默认的记录大小为128字节。
注意:当该过程打开文件时,如果文件不存在则产生异常。
如果文件已经打开了,则先关闭文件,然后重新打开,并将文件指针放到文件开头处。
默认的文件模式(FileMode)为2,即可读写模式。
如果文件模式在调用Reset过程前都还未改变,则尝试打开一个只读文件会失败。
当调用Reset过程后,如果文件为空,则Eof函数返回True,否则返回False。
1.5、Rewrite过程作用:对于一个已存在的文件,此操作将使文件被覆盖。
对于一个不存在的文件,将创建并打开文件。
对于一个已打开的文件,则关闭文件,并重新创建一个新的文件(覆盖原有的)。
文件指针也被设置到空文件的开头处。
原型:procedure Rewrite(var F: File [; Recsize: Word ] );F:File类型变量,可以是任何文件类型。
RecSize:文件的大小。
它是一个可选的选项,只有当F为无类型文件时才可以被指定。
如果F为无类型文件,则RecSize指定了在数据传输过程中使用的记录的大小。
如果参数RecSize被省略了,则默认的记录大小为128字节。
注意:如果F被指定为一个空的文件名,如:AssignFile(F, …‟),那么当Rewrite过程被调用时,F为标准的输出文件。
如果F是文本文件,则F为只写模式。
当调用Rewrite过程后,Eof(F)将总是为True。
1.6、Flush函数作用:用于清空以输出方式打开的文本缓冲区,保证所有写入的字符全部写入外部文件。
原型:function Flush(var t: Text): Integer;F:F是文本类型变量。
注意:本函数只使用于文本文件的处理。
当操作成功时,Flush返回0,否则,它将返回错误代码。
当使用Rewrite过程或者Append过程打开一个文本文件用来输出时。
Flush函数用于清空文件的缓冲区。
这个过程保证了缓冲区的中的所有字符都已经写入外部文件中。
对于因为输入而打开的文件,Flush函数不起任何作用。
1.7、Read过程作用:用于从一个文件中读取数据。
原型:procedure Read(F , V1 [, V2,...,Vn ] );procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );F:是一个文件变量。
V1……Vn:用于存储从文件中读取的数据。
注意:在Delphi中,Read过程有两种语法,如果参数F是一个有类型文件,过程Read读取一组数据到一个变量中。
如果参数F是一个文本文件变量,过程Read读取一个或多个值到一个或多个变量中。
1.8、ReadLn过程作用:用于从文件中读取一行文本。
原型:procedure ReadLn([ var F: Text; ] V1 [, V2, ...,Vn ]);V:文本文件变量。
V1……V2:用于存储读取的文本。
注意:在Delphi中,ReadLn过程用于读取文本文件的一行文本,并跳至该文本文件的下一行。
1.9、Write过程作用:用于向一个文本文件写入数据。
原型:procedure Write( [var F: Text; ] P1 [ , P2,..., Pn] ); //文本类型文件procedure Write(F, V1,…Vn);//有类型文件F:文本文件比变量。
P1……Pn:代表向文件中写入的数据。
注意:对于文本文件来说,写入的内容应String类型变量。
对于有类型文件来说,写入的必须是某种特定类型的数据。
1.10、WriteLn过程作用:用来向文本文件中添加一行内容,即在写入内容后面有回车换行符。
原型:procedure WriteLn([ var F: Text; ] P1 [, P2, ...,Pn ] );F:文本文件比变量。
1.11、Eof函数作用:用于判断是否到了文件的结尾。
原型:function Eof(var F): Boolean; //用于类型文件和无类型文件function Eof [ (var F: Text) ]: Boolean; //用于文本文件典型应用:如果文件为空或当前位置在最后一个字符后,则返回True;否则,返回False。
1.12、Eoln函数作用:测试文件指针是否指向一行的最后,适用于文本文件。
如果当前的位置在一行的末尾或Eof(F)函数返回的是True,则Eoln返回的是True;否则返回False。
原型:function Eoln [(var F: Text) ]: Boolean;典型应用:在程序中对文本文件进行操作时,有时需要限制数据的读取。
如果只读取一行中某个位置到一行结束的部分数据。
程序中可以使用Eoln函数进行判断。
1.13、CloseFile过程作用:用来关闭文件,同事将文件记录盘上的文件与相关文件变量断开联系。
原型:procedure CloseFile(var F);F:一个文件类型变量注意:通常来说,CloseFile过程与try…finally…模块结合使用。
1.14、DeleteFile函数作用:将一个文件从记录盘上删除。
原型:function DeleteFile(const FileName: string): Boolean;注意:如果文件不存在或无法删除,返回False;否则,返回True。
1.15、Erase过程作用:用于删除一个已存在的文件。
原型:procedure Erase(var F);注意:如果文件被打开,先关闭文件再执行删除操作。
1.16、FileGetAttr函数作用:用于获取一个文件的属性设置。
原型:function FileGetAttr(const FileName: string): Integer;注意:具体返回值代码参考帮助。
下面我们来总结一下Delphi中文件操作流程。
Delphi中把文件分为3种:文本文件、类型文件和无类型文件。
文本文件指可以被任意文件编辑器读取的ASCII文件。
类型文件包含由程序员定义的数据类型的文件。
无类型文件包含了其他所有的文件类型。
1、文本文件Step 1 调用AssignFile()将文件变量与一个关联起来。
如:AssignFile(MyTextFile,‟TextFile.txt‟);Step 2 打开文件。
有三种打开文件的方式:1.Rewrite过程创建并打开文件,对于一个已经存在的文件,此操作将使文件被覆盖;2.使用Reset过程只读地打开一个文件;3.使用Append 过程向已经存在的文本文件追加文本。
Step 3 对文件进行操作。
如Write或Read操作。
Step 4 使用CloseFile来关闭一个已经打开的文件。
下面是一个文本文件操作的示例。
例1:复制内容到剪贴板代码:procedure TForm1.Button1Click(Sender: TObject);varMyTextFile: TextFile; //定义变量MyTextFile为文本文件类型begin(*步骤1,将文件变量与外部文件联系。
相当于为外部文件找了个“替身”*)AssignFile(MyTextFile, …TextFile.txt‟);(*判断操作的文件是否存在,不存在则创建文件。
*)if FileExists(…TextFile.txt‟) then(*步骤2,打开文件,不过在打开前,最好进行文件是否存在的判断。
*) Append(MyTextFile)elseRewrite(MyTextFile);try(*步骤3,对文件进行操作。
*)Wrtie Ln(MyTextFile, …在文件末尾添加的文字!‟);Flush(MyTextFile); //清空缓冲区,确保字符串已经写入文件之中。
finally(*步骤4,关闭打开的文件,CloseFile常与try…finally搭配,用于回收资源*) CloseFile(MyTextFile);end;end;2、类型文件Step 1 定义数据结构Step 2 调用AssignFile()将文件变量与一个类型文件关联起来。
Step 3 打开类型文件。
Step 4 对类型文件进行操作。
Step 5 关闭已经打开的文件。
下面例子演示了类型文件的操作。
例2:复制内容到剪贴板代码:(*步骤1,定义数据结构。