如何快速不依赖文件的扩展名而识别一个文件是否为文本文件(100分)

  • 主题发起人 NoteXPad
  • 开始时间
N

NoteXPad

Unregistered / Unconfirmed
GUEST, unregistred user!
要求可以识别普通单字节、unicode、MBCB(单双字混合)文本文件

请会者贴一下代码,谢了
 
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)&amp;NBSP;AND&amp;NBSP;(A=TRUE)&amp;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

 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
437
import
I
顶部