在自己寫文字檔讀取函數的時候,你首先會遇到的第一個問題就是:對於給定的一個檔名,你怎麼知道它所代表磁碟檔的確是文字檔?這裡有一個很簡單的方法:把給定的那個文件看作是無類型的二進位文件,然後順序地讀出這個文件的每一個字節,如果文件裡有一個字節的值等於0,那麼這個文件就不是文字檔;反之,如果這個文件中沒有一個位元組的值是0的話,就可以判定這個文件是文字檔了。這是原理,下面看看在Delphi中怎樣編程來實現它——
複製代碼代碼如下:
functionIsTextFile(FileName:string):boolean;
var
Fs:TFileStream;
i,size:integer;
IsTextFile:boolean;
ByteData:Byte;
begin
ifFileExists(FileName)then
begin
Fs:=TFileStream.Create(FileName,fmOpenRead);
IsTextFile:=true;
i:=0;
size:=Fs.Size;
While(i<size)andIsTextFiledo
begin
Fs.Read(ByteData,1);
IsTextFile:=ByteData<>0;
inc(i)
end;
Fs.Free;
Result:=IsTextFile
end
else
Result:=false
end;