明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

一個(gè)判斷定文件是否為文本文件的函數(shù)

[摘要]在用Delphi 編程處理文本文件的時(shí)候,如果要裝載的文件比較大,你可能會(huì)想在文件裝載過程中提供一個(gè)裝載進(jìn)度的提示--那么你就必需自己編寫直接通過文件打開/讀取函數(shù)來裝載文件內(nèi)容的函數(shù)。在自己編寫文本文件讀取函數(shù)的時(shí)候,你首先會(huì)遇到的第一個(gè)問題就是:對(duì)于給定的一個(gè)文件名,怎么知道它所代表磁盤文件的...
在用Delphi 編程處理文本文件的時(shí)候,如果要裝載的文件比較大,你可能會(huì)想在文件裝載過程中提供一個(gè)裝載進(jìn)度的提示--那么你就必需自己編寫直接通過文件打開/讀取函數(shù)來裝載文件內(nèi)容的函數(shù)。在自己編寫文本文件讀取函數(shù)的時(shí)候,你首先會(huì)遇到的第一個(gè)問題就是:對(duì)于給定的一個(gè)文件名,怎么知道它所代表磁盤文件的確是文本文件?這里有一個(gè)很簡(jiǎn)單的方法:把給定的那個(gè)文件看作是無類型的二進(jìn)制文件,然后順序地讀出這個(gè)文件的每一個(gè)字節(jié),如果文件里有一個(gè)字節(jié)的值等于0,那么這個(gè)文件就不是文本文件;反之,如果這個(gè)文件中沒有一個(gè)字節(jié)的值是0的話,就可以判定這個(gè)文件是文本文件了。這是原理,下面看看在Delphi 中怎樣編程來實(shí)現(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;