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 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;