1. AssignFile、Erase

AssignFile

procedure AssignFile(var F; FileName: string);:给文件变量连接一个外部文件名。这里需要注意的是AssignFile不能用在已打开的文件上。

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. text : String;
  4. F1 : TextFile;
  5. begin
  6. Try
  7. AssignFile(F1,Trim(Edit1.Text));  //变量与外部文件名关联
  8. Append(F1);
  9. text := Memo1.Text;
  10. write(f1,text);
  11. CloseFile(f1);                   //终止变量与外部文件的关联
  12. Except
  13. ShowMessage('写入失败');
  14. End;
  15. end;

Erase

procedure Erase(var F);:删除一个外部文件。

  1. AssignFile(MyFile,'d:\dd.txt');
  2. Erase(MyFile);  //必须关闭一个文件后才可以删除它

2.ChDir

procedure ChDir(const S: string); overload;

procedure ChDir(P: PChar); overload;

将当前目录修改为指定目录。其中S、P表示指定修改的目录。

3.CloseFile

procedure CloseFile(var F);:终止一个文件变量与一个外部磁盘文件的关联。其中,F表示指定关闭的文件变量。

4. CreateDir

function CreateDir(const Dir: string): Boolean;:创建一个新的目录。如果返回值为true,则表示目录创建成功;否则返回失败。

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. if not DirectoryExists('c:\temp') then  //判断目录是否存在
  4. if not CreateDir('C:\temp') then      //判断目录是否可以新创建
  5. raise Exception.Create('Cannot create c:\temp');
  6. end;

5. DeleteFile、FileClose、FileCreate、FileExists、FileGetAttr、FileOpen、FileSearch

DeleteFile

function DeleteFile(const FileName: string): Boolean;:从磁盘中删除一个指定的文件。如果返回true,则表示文件删除成功;否则删除失败。

FileClose

procedure FileClose(Handle: Integer);:用来关闭一个指定的文件。

FileCreate

function FileCreate(const FileName: string): Integer; overload;

function FileCreate(const FileName: string; Rights: Integer): Integer; overload;

用于创建一个文件。其中第二个函数中的Rights用于设置文件许可,主要用于Linux系统。如果返回值为-1,则表示文件创建失败;否则表示文件创建成功。该返回值作为FileClose的参数。

FileExists

function FileExists(const FileName: string): Boolean;:测试指定的文件是否存在。如果存在,则返回true;否则返回false。

FileGetAttr

function FileGetAttr(const FileName: string): Integer;:返回文件的属性。如果返回值为1,则文件是只读的(faReadOnly);如果为2,则文件是隐藏文件(faHidden);

FileOpen

function FileOpen(const FileName: string; Mode: LongWord): Integer;:用指定的访问方式打开一个指定的文件。其中Mode为文件访问方式(只读(mOpenRead)、只写(fmOpenWrite)、读写(fmOpenReadWrite))。如执行成功,则返回值大于等于0;否则返回值为-1。

  1. procedure OpenForShare(const FileName: String);
  2. var
  3. FileHandle : Integer;
  4. begin
  5. FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
  6. if FileHandle > 0 then
  7. {valid file handle}
  8. else
  9. {Open error: FileHandle = negative DOS error code}
  10. end;

FileSearch

function FileSearch(const Name, DirList: string): string;:在指定路径中搜索指定的文件。其中DirList用于输入文件所在路径,如有多个路径,中间需要用;。如未找到文件,则返回空值;否则返回的是文件名称。

  1. procedure TForm1.btn_SearchFileClick(Sender: TObject);
  2. var
  3. FileToFind : string;
  4. begin
  5. FileToFind := FileSearch(edit_FileName.Text,GetCurrentDir);
  6. if FileToFind = '' then
  7. ShowMessage('不能找到文件')
  8. else
  9. ShowMessage('找到文件:'+FileToFind);
  10. end;

6. DirectoryExists

function DirectoryExists(const Directory: string): Boolean;:判断指定的目录是否存在。如果目录存在,则返回true;否则返回false。其中Directory如果是绝对路径,则在该绝对路径下查找,否则则在当前项目路径下查找。

7.FileRead、FileSeek、FileWrite

FileRead

function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer;:从指定文件(当前文件指针)中读取相应字节的数据,同时调整文件指针位置。其中,buffer用于保存从文件中读取的数据;count表示读取的字节数。返回实际读取的字节数。

FileSeek

function FileSeek(Handle, Offset, Origin: Integer): Integer; overload;
function FileSeek(Handle: Integer; const Offset: Int64; Origin: Integer): Int64; overload;

能够重新定位文件读写指针。其中Origin表示源点(0表示指针在文件的开始;1表示指针在当前文件的位置;2表示指针在文件的末尾);handle为FileOpen或FileCreate返回的值;Offset表示位移量。如果FileSeek执行成功,则返回新的文件指针;否则返回-1。

  1. procedure TForm1.btn_ReadClick(Sender: TObject);
  2. var
  3. fend : integer;
  4. fOpen : THandle;
  5. buffer : PChar;
  6. count : integer;
  7. i: integer;
  8. begin
  9. {文件读取分为:1.已指定方式打开文件;2.利用fileSeek获取字符长度;3.重新定位文件指针,使其从头开始;
  10. 4.为buffer分配内存空间;5.读取文件内存,返回长度;6.关闭文件;}
  11. fOpen := FileOpen('F:\test.txt',fmOpenReadWrite);   //以读写的方式打开文件test.txt
  12. if fOpen<> -1 then
  13. begin
  14. fend := FileSeek(fOpen,0,2);   //将文件指针移动到末尾,为了方便创建数组
  15. FileSeek(fOpen,0,0);       //将文件指针重新指定到文件开头,为读写文件作准备
  16. buffer := PChar(AllocMem(fend+1));     //为buffer分配内存空间
  17. count := FileRead(fOpen,buffer^,fend);  //读取文件内容,返回字符数
  18. FileClose(fOpen);        //关闭文件
  19. for i:=0 to count-1 do    //遍历内存,取出内容
  20. begin
  21. ShowMessage(buffer[i]);
  22. end;
  23. end
  24. else
  25. ShowMessage('文件不存在!');
  26. end;

FileWirte

function FileWrite(Handle: Integer; const Buffer; Count: Integer): Integer;:将缓存区中的内容写入到文件中。其中buffer用于写入文件的数据;count指定写入数据的长度。

  1. {写入文件}
  2. procedure TForm1.btn_WriteClick(Sender: TObject);
  3. var
  4. fOpen : THandle;
  5. result : integer;
  6. buffer : PChar;
  7. begin
  8. fOpen := FileOpen('F:/test.txt',fmOpenReadWrite);
  9. if fOpen <> -1 then
  10. begin
  11. FileSeek(fOpen,0,2);
  12. buffer := PChar(edit_FileName.Text);  //将编辑框中的内容放到buffer缓冲区中
  13. result := FileWrite(fOpen,buffer^,StrLen(buffer));
  14. if result <> -1 then
  15. ShowMessage('写入成功!')
  16. else
  17. ShowMessage('写入失败');
  18. end
  19. else
  20. ShowMessage('未找到文件');
  21. FileClose(fOpen);
  22. end;

8.FindClose、FindFirst、FindNext

FindClose

procedure FindClose(var F: TSearchRec);:终止一个查找过程,并释放查找文件所分配的空间。其中F为TSearchRec类型的结构,记录文件搜索时的一些信息。而FindClose中的参数值来源于FindFirst或FindNext函数。

FindFirst

function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;:在指定目录中搜索第一个指定属性的文件。其中Attr(faReadOnly、faHidden、faSysFile、faVolumeID、faDirectory(23)、faArchive、faAnyFile)

FindNext

function FindNext(var F: TSearchRec): Integer;:继续查找指定的文件。其中F为FindFirst查找文件或得到的信息。如结果返回为0,则说明函数执行成功;否则执行失败。

  1. {查找指定目录的文件}
  2. procedure TForm1.btn_SearchClick(Sender: TObject);
  3. begin
  4. FindFile(Trim(edit_FileName.Text));
  5. end;
  6. {自定义文件查找方法}
  7. procedure TForm1.FindFile(filename: string);
  8. var
  9. path : string;
  10. begin
  11. if FindFirst(filename + '*.*',faAnyFile,search)=0 then  //
  12. begin
  13. if (search.Name<>'.') and (search.Name<>'..') then    //判断路径下是否还包含子路径
  14. memo_showfile.Lines.Add(search.Name);
  15. while FindNext(search) = 0 do
  16. begin
  17. path := filename + '\'+search.Name+'\';
  18. if(search.Name<>'.') and(search.Name<>'..') then
  19. memo_showfile.Lines.Add(search.Name);
  20. if (search.Attr = faDirectory) and (search.Name<>'.') and (search.Name<>'..') then
  21. FindFile(path);    //如果search.Name为目录,则重新执行FindFile函数
  22. end;
  23. Caption := IntToStr(memo_showfile.Lines.Count);  //显示记录条数
  24. end;
  25. end;
  26. {停止查找}
  27. procedure TForm1.btn_StopSearchClick(Sender: TObject);
  28. begin
  29. FindClose(search);
  30. end;

对于FindFirst、FindNext来说,F.Attr=32表示文件;F.Attr = 16表示目录。

转自:http://blog.csdn.net/kimifdw/article/details/8593043

http://www.cnblogs.com/azhqiang/p/3673589.html

1.ForceDirectories、GetCurrentDir、GetDir、SetCurrentDir

ForceDirectories

function ForceDirectories(Dir: string): Boolean;:在指定的目录中创建一个目录。其中参数Dir为创建目录的全名,必须包括上级目录。如创建成功则返回true;否则返回false。

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. Dir: string;
  4. begin
  5. Dir := 'C:\APPS\SALES\LOCAL';
  6. if ForceDirectories(Dir) then
  7. Label1.Caption := Dir + ' was created'
  8. end;

GetCurrentDir

function GetCurrentDir: string;:返回当前程序运行目录的名称。

GetDir

procedure GetDir(D: Byte; var S: string);:获取当前目录。其中,D表示指定获取目录的磁盘驱动器。(0表示当前磁盘;)S表示获取的路径的名称字符串存放变量。

RemoveDir

function RemoveDir(const Dir: string): Boolean;:可以删除一个现有的空目录。

SetCurrentDir

function SetCurrentDir(const Dir: string): Boolean;:改变当前目录。

2.AssignPrn

procedure AssignPrn(var F: Text);:将一个文本文件变量赋给一个打印机对象。该函数经常在打印文本时使用。

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. MyFile: TextFile;
  4. begin
  5. AssignPrn(MyFile);
  6. Rewrite(MyFile);  //在关联打印机后,须调用ReWrite过程重新创建并打开文件
  7. Writeln(MyFile, 'Print this text');
  8. System.CloseFile(MyFile);
  9. end;

3. Flush、Read、SeekEor、write、Append、Eof、Reset、ReWrite

Flush

function Flush(var t: Text): Integer;:清空以输出方式打开的文本缓冲区,保证所有写入文件的字符全部写入外部文件。如执行成功,返回0;否则返回错误代码。常用语Write、WriteLn等对文本文件的写入操作。

Read

Typed files:

procedure Read(F , V1 [, V2,...,Vn ] );

Text files:

procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );:用于从一个文件中读取数据。其中F是一个文件变量(如果参数F是一个有类型文件,读取一组数据到一个变量中;如果F是一个文本文件变量,则读取一个或多个值到一个或多个变量),V1...Vn表示存储从文件中读取的数据。

ReadLn

procedure ReadLn([ var F: Text; ] V1 [, V2, ...,Vn ]);:从文件中读取一行文本。

SeekEof

function SeekEof [ (var F: Text) ]: Boolean;:确定文件末尾的状态,忽略空白。如文件指针移动到文件的末尾,返回true;否则返回false。

SeekEofLn

function SeekEoln [ (var F: Text) ]: Boolean;:确定文件行尾的状态,忽略空白。如当前文件指针与行尾之间有空格,返回true;否则返回False。

Write(文本文件写入)

procedure Write( [var F: Text; ] P1 [ , P2,..., Pn] );:用于向一个文本文件写入数据。

WriteLn

procedure WriteLn([ var F: Text; ] P1 [, P2, ...,Pn ] );:用于向文本文件中写入数据,并添加行尾标记。

Append

procedure Append(var F: Text);:向现有文件的末尾增加记录。其中F表示已经关联的文件变量。

Reset

procedure Reset(var F [: File; RecSize: Word ] );:打开一个已存在的文件。

ReWrite

procedure Rewrite(var F: File [; Recsize: Word ] );:用于创建一个新文件并且打开它。

Eof

Typed or untyped files:

function Eof(var F): Boolean;

Text files:

function Eof [ (var F: Text) ]: Boolean;

检测文件当前位置是否在文件尾。

例1:复制一个文件的内容到另一个文件。

  1. var
  2. F1, F2: TextFile;
  3. Ch: Char;
  4. begin
  5. if OpenDialog1.Execute then begin
  6. AssignFile(F1, OpenDialog1.Filename);  //关联文件变量和外部文件
  7. Reset(F1);  //打开已存在的文件
  8. if SaveDialog1.Execute then begin
  9. AssignFile(F2, SaveDialog1.Filename);
  10. Rewrite(F2);   //重新创建并打开文件
  11. while not Eof(F1) do  //检测文件当前位置是否在文件尾
  12. begin
  13. Read(F1, Ch);
  14. Write(F2, Ch);
  15. end;
  16. CloseFile(F2);
  17. end;
  18. CloseFile(F1);
  19. end;
  20. end;

4. Seek

procedure Seek(var F; N: Longint);:移动文件当前指针到指定位置。其中F为当前已关联的文件变量,N为偏移量。

5. Truncate

procedure Truncate(var F);:清除打开文件中当前指针之前的所有数据。其中F为指定处理的文件变量。

6. ProcessPath

procedure ProcessPath (const EditText: string; var Drive: Char; var DirPart: string; var FilePart: string);:将某文件名分解为驱动器、路径和文件名等。其中,Drive表示驱动器,DirPart表示路径,FilePart表示文件名。

7. Eof

Typed or untyped files:

function Eof(var F): Boolean;

Text files:

function Eof [ (var F: Text) ]: Boolean;

用来检测文件当前位置是否在文件尾。其中F表示已经关联并且打开的文件。

http://blog.csdn.net/kimifdw/article/details/8600992

最新文章

  1. Apache与Tomcat服务器
  2. oracle触发器与数据导入导出的简单使用
  3. ABAP SPLIT
  4. Mysql notes
  5. js数组转json
  6. 使用PHP获取时间今天 明天 昨天 时间戳的详解
  7. c#创建ISS站点
  8. JAVA程序1,1,2,3,5,8,13,21....第30个是什么...?
  9. 【linux】压缩和解压缩
  10. 从零开始安装Hadoop视频教程
  11. WebForm页面运行机制
  12. Objective-C命名编写规范
  13. asp快速开发方法之分页函数
  14. GridView专栏
  15. jsp内置对象-out对象
  16. Kubernetes介绍及基本概念
  17. Oracle 11g 单实例到单实例OGG同步实施文档-OGG initial load
  18. 蛙蛙推荐: TensorFlow Hello World 之平面拟合
  19. 用linux命令连接无线网络-转载
  20. Java虚拟机 - Javac编译与JIT编译

热门文章

  1. js课程 1-2 js概念
  2. Android自定义组件系列【1】——自定义View及ViewGroup
  3. 百度echart--Uncaught Error: Component series.wordCloud not exists. Load it first.
  4. MySQL经常使用的面试题
  5. C#基础readonly 与const
  6. 【t033】单位unit
  7. iOS中,MRC和ARC混编
  8. java序列化框架(protobuf、thrift、kryo、fst、fastjson、Jackson、gson、hessian)性能对比
  9. hadoop编程技巧(8)---Unit Testing (单元测试)
  10. 浅谈Linux下各种压缩 解压命令和压缩比率对比