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)&NBSP;AND&NBSP;(A=TRUE)&NBSP;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<32) and (not (c 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