1. AssignFile、Erase
AssignFile
procedure AssignFile(var F; FileName: string);:給文件變量連接一個外部文件名。這里需要注意的是AssignFile不能用在已打開的文件上。
- procedure TForm1.Button1Click(Sender: TObject);
- var
- text : String;
- F1 : TextFile;
- begin
- Try
- AssignFile(F1,Trim(Edit1.Text)); //變量與外部文件名關聯
- Append(F1);
- text := Memo1.Text;
- write(f1,text);
- CloseFile(f1); //終止變量與外部文件的關聯
- Except
- ShowMessage('寫入失敗');
- End;
- end;
Erase
procedure Erase(var F);:刪除一個外部文件。
- AssignFile(MyFile,'d:\dd.txt');
- 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,則表示目錄創建成功;否則返回失敗。
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if not DirectoryExists('c:\temp') then //判斷目錄是否存在
- if not CreateDir('C:\temp') then //判斷目錄是否可以新創建
- raise Exception.Create('Cannot create c:\temp');
- 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。
- procedure OpenForShare(const FileName: String);
- var
- FileHandle : Integer;
- begin
- FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
- if FileHandle > 0 then
- {valid file handle}
- else
- {Open error: FileHandle = negative DOS error code}
- end;
FileSearch
function FileSearch(const Name, DirList: string): string;:在指定路徑中搜索指定的文件。其中DirList用於輸入文件所在路徑,如有多個路徑,中間需要用;。如未找到文件,則返回空值;否則返回的是文件名稱。
- procedure TForm1.btn_SearchFileClick(Sender: TObject);
- var
- FileToFind : string;
- begin
- FileToFind := FileSearch(edit_FileName.Text,GetCurrentDir);
- if FileToFind = '' then
- ShowMessage('不能找到文件')
- else
- ShowMessage('找到文件:'+FileToFind);
- 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。
- procedure TForm1.btn_ReadClick(Sender: TObject);
- var
- fend : integer;
- fOpen : THandle;
- buffer : PChar;
- count : integer;
- i: integer;
- begin
- {文件讀取分為:1.已指定方式打開文件;2.利用fileSeek獲取字符長度;3.重新定位文件指針,使其從頭開始;
- 4.為buffer分配內存空間;5.讀取文件內存,返回長度;6.關閉文件;}
- fOpen := FileOpen('F:\test.txt',fmOpenReadWrite); //以讀寫的方式打開文件test.txt
- if fOpen<> -1 then
- begin
- fend := FileSeek(fOpen,0,2); //將文件指針移動到末尾,為了方便創建數組
- FileSeek(fOpen,0,0); //將文件指針重新指定到文件開頭,為讀寫文件作准備
- buffer := PChar(AllocMem(fend+1)); //為buffer分配內存空間
- count := FileRead(fOpen,buffer^,fend); //讀取文件內容,返回字符數
- FileClose(fOpen); //關閉文件
- for i:=0 to count-1 do //遍歷內存,取出內容
- begin
- ShowMessage(buffer[i]);
- end;
- end
- else
- ShowMessage('文件不存在!');
- end;
FileWirte
function FileWrite(Handle: Integer; const Buffer; Count: Integer): Integer;:將緩存區中的內容寫入到文件中。其中buffer用於寫入文件的數據;count指定寫入數據的長度。
- {寫入文件}
- procedure TForm1.btn_WriteClick(Sender: TObject);
- var
- fOpen : THandle;
- result : integer;
- buffer : PChar;
- begin
- fOpen := FileOpen('F:/test.txt',fmOpenReadWrite);
- if fOpen <> -1 then
- begin
- FileSeek(fOpen,0,2);
- buffer := PChar(edit_FileName.Text); //將編輯框中的內容放到buffer緩沖區中
- result := FileWrite(fOpen,buffer^,StrLen(buffer));
- if result <> -1 then
- ShowMessage('寫入成功!')
- else
- ShowMessage('寫入失敗');
- end
- else
- ShowMessage('未找到文件');
- FileClose(fOpen);
- 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,則說明函數執行成功;否則執行失敗。
- {查找指定目錄的文件}
- procedure TForm1.btn_SearchClick(Sender: TObject);
- begin
- FindFile(Trim(edit_FileName.Text));
- end;
- {自定義文件查找方法}
- procedure TForm1.FindFile(filename: string);
- var
- path : string;
- begin
- if FindFirst(filename + '*.*',faAnyFile,search)=0 then //
- begin
- if (search.Name<>'.') and (search.Name<>'..') then //判斷路徑下是否還包含子路徑
- memo_showfile.Lines.Add(search.Name);
- while FindNext(search) = 0 do
- begin
- path := filename + '\'+search.Name+'\';
- if(search.Name<>'.') and(search.Name<>'..') then
- memo_showfile.Lines.Add(search.Name);
- if (search.Attr = faDirectory) and (search.Name<>'.') and (search.Name<>'..') then
- FindFile(path); //如果search.Name為目錄,則重新執行FindFile函數
- end;
- Caption := IntToStr(memo_showfile.Lines.Count); //顯示記錄條數
- end;
- end;
- {停止查找}
- procedure TForm1.btn_StopSearchClick(Sender: TObject);
- begin
- FindClose(search);
- 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。
- procedure TForm1.Button1Click(Sender: TObject);
- var
- Dir: string;
- begin
- Dir := 'C:\APPS\SALES\LOCAL';
- if ForceDirectories(Dir) then
- Label1.Caption := Dir + ' was created'
- 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);:將一個文本文件變量賦給一個打印機對象。該函數經常在打印文本時使用。
- procedure TForm1.Button1Click(Sender: TObject);
- var
- MyFile: TextFile;
- begin
- AssignPrn(MyFile);
- Rewrite(MyFile); //在關聯打印機后,須調用ReWrite過程重新創建並打開文件
- Writeln(MyFile, 'Print this text');
- System.CloseFile(MyFile);
- 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:復制一個文件的內容到另一個文件。
- var
- F1, F2: TextFile;
- Ch: Char;
- begin
- if OpenDialog1.Execute then begin
- AssignFile(F1, OpenDialog1.Filename); //關聯文件變量和外部文件
- Reset(F1); //打開已存在的文件
- if SaveDialog1.Execute then begin
- AssignFile(F2, SaveDialog1.Filename);
- Rewrite(F2); //重新創建並打開文件
- while not Eof(F1) do //檢測文件當前位置是否在文件尾
- begin
- Read(F1, Ch);
- Write(F2, Ch);
- end;
- CloseFile(F2);
- end;
- CloseFile(F1);
- end;
- 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