首页  编辑  

检查文件是否为文本文件

Tags: /超级猛料/Stream.File.流、文件和目录/文件操作/   Date Created:

Function isAscii(NomeFile: String): Boolean;

const

 Sett=2048;

var

 i: Integer;

 F: file;

 a: Boolean;

 TotSize, IncSize, ReadSize: Integer;

 c: Array[0..Sett] of byte;

begin

 If FileExists(NomeFile) then

 begin

   {$I-}

   AssignFile(F, NomeFile);

   Reset(F, 1);

   TotSize:=FileSize(F);

   IncSize:=0;

   a:=true;

   while (IncSize<TotSize) and (a=true) do

   begin

     ReadSize:=Sett;

     If IncSize+ReadSize>TotSize then ReadSize:=TotSize-IncSize;

     IncSize:=IncSize+ReadSize;

     BlockRead(F, c, ReadSize);

     For i := 0 to ReadSize-1 do    // Iterate

       If (c[i]<32) and (not (c[i] in [9, 10, 13, 26])) then a:=False;

   end;    // while

   CloseFile(F);

   {$I+}

   If IOResult<>0 then Result:=False

                  else Result:=a;

 end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 if OpenDialog1.Execute then

 begin

   if isAscii(OpenDialog1.FileName) then

   begin

     ShowMessage('ASCII File');

   end;

 end;

end;