...überprüfen, ob eine Datei Text (ASCII) oder Binäres enthält?

Autor: Marcelo Castro
Homepage: http://www.mcgsoftwares.com

Kategorie: Dateien

function IsTextFile(const sFile: TFileName): boolean;
//Created By Marcelo Castro - from Brazil

var
 
oIn: TFileStream;
 iRead: Integer;
 iMaxRead: Integer;
 iData: Byte;
 dummy:string;
begin
 
result:=true;
 dummy :='';
 oIn := TFileStream.Create(sFile, fmOpenRead or fmShareDenyNone);
 try
   
iMaxRead := 1000;  //only text the first 1000 bytes
   
if iMaxRead > oIn.Size then
     
iMaxRead := oIn.Size;
   for iRead := 1 to iMaxRead do
   begin
     
oIn.Read(iData, 1);
     if (idata) > 127 then result:=false;
   end;
 finally
   
FreeAndNil(oIn);
 end;
end;

(* ----- Sample call ----- *)

procedure TForm1.Button1Click(Sender: TObject);
begin
  if 
OpenDialog1.Execute then
  begin
  if 
IsTextFile(OpenDialog1.FileName) then
  
showmessage('is ascii')
  else showmessage('is BinaryFile')
  end;

end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base