...check if a file has an ASCII format?

Author: Fabio Cillo
Homepage: http://web.tiscalinet.it/fabiocillo

Category: Files

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);
      // Iterate
      
for i := 0 to ReadSize - 1 do
        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
    if 
isAscii(OpenDialog1.FileName) then
      
ShowMessage('ASCII File');
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base