Delphi中判斷文件是否為文本文件的函數(shù)
更新時間:2008年03月15日 18:15:21 作者:
在用Delphi 編程處理文本文件的時候,如果要裝載的文件比較大,你可能會想在文件裝載過程中提供一個裝載進度的提示--那么你就必需自己編寫直接通過文件打開/讀取函數(shù)來裝載文件內(nèi)容的函數(shù)。
在自己編寫文本文件讀取函數(shù)的時候,你首先會遇到的第一個問題就是:對于給定的一個文件名,怎么知道它所代表磁盤文件的確是文本文件?這里有一個很簡單的方法:把給定的那個文件看作是無類型的二進制文件,然后順序地讀出這個文件的每一個字節(jié),如果文件里有一個字節(jié)的值等于0,那么這個文件就不是文本文件;反之,如果這個文件中沒有一個字節(jié)的值是0的話,就可以判定這個文件是文本文件了。這是原理,下面看看在Delphi 中怎樣編程來實現(xiàn)它--
function IsTextFile(FileName:string):boolean;
var
Fs:TFileStream;
i,size:integer;
IsTextFile:boolean;
ByteData:Byte;
begin
if FileExists(FileName) then
begin
Fs:=TFileStream.Create(FileName,fmOpenRead);
IsTextFile:=true;
i:=0;
size:=Fs.Size;
While (i<size) and IsTextFile do
begin
Fs.Read(ByteData,1);
IsTextFile:=ByteData<>0;
inc(i)
end;
Fs.Free;
Result:=IsTextFile
end
else
Result:=false
end;
復(fù)制代碼 代碼如下:
function IsTextFile(FileName:string):boolean;
var
Fs:TFileStream;
i,size:integer;
IsTextFile:boolean;
ByteData:Byte;
begin
if FileExists(FileName) then
begin
Fs:=TFileStream.Create(FileName,fmOpenRead);
IsTextFile:=true;
i:=0;
size:=Fs.Size;
While (i<size) and IsTextFile do
begin
Fs.Read(ByteData,1);
IsTextFile:=ByteData<>0;
inc(i)
end;
Fs.Free;
Result:=IsTextFile
end
else
Result:=false
end;
相關(guān)文章
Delphi之Pascal語言中的關(guān)鍵字及保留字匯總
這篇文章主要介紹了Delphi之Pascal語言中的關(guān)鍵字及保留字匯總,需要的朋友可以參考下2014-07-07Delphi實例演示Rect、Bounds生成TRect的區(qū)別
這篇文章主要介紹了Delphi實例演示Rect、Bounds生成TRect的區(qū)別,需要的朋友可以參考下2014-07-07delphi中exit,abort,break,continue的區(qū)別介紹
本文詳細介紹下delphi中表示跳出的有break,continue, exit,abort, halt, runerror的區(qū)別,感興趣的朋友可以參考下哈,希望對你學(xué)習(xí)跳出有所幫助2013-04-04Windows API GetLastError()函數(shù)返回值含義解釋
這篇文章主要介紹了Windows API GetLastError()函數(shù)返回值含義解釋,本文羅列了所有錯誤代碼及中文注釋,需要的朋友可以參考下2015-05-05