依次讀出檔案中的位元組,如果存在'/0'則是二進位制檔案, 否則為ascii文字檔案!
**實現如下:
bool isasciifile(lpctstr lpfilepath)
;widechartomultibyte(cp_acp, wc_compositecheck, lpfilepath, -1, cfile, sizeof(cfile), null, null);
if(cfile==null)
struct stat f_stat;
if(stat(cfile,&f_stat) == -1)
long lngfilesize = 0;
lngfilesize = (long)f_stat.st_size;
if(lngfilesize <= 0)
file *ft;
fopen_s(&ft, cfile, "rb");
if(ft==null)
char btdata[1];
long lngreadpos;
long lngmaxread = 40960;
if(lngmaxread > lngfilesize)
for(lngreadpos = 1;lngreadpos <= lngmaxread;lngreadpos++)
}fclose(ft);
return true;
}
原創 如何判斷檔案為文字檔案還是二進位制檔案
最近寫乙個程式用於讀取stl檔案 一種三維檔案格式 並顯示出來。stl檔案儲存格式有乙個特殊點就是分兩種型別,一種是ascii檔案型別,一種是二進位制檔案型別。ascii檔案型別的,裡面就是一些字串,描述了三維三角麵片的座標和法向量。二進位制檔案和ascii基本一致,不過是按照二進位制的方式按位來讀...
判斷乙個文字檔案的編碼格式
不同編碼的文字,是根據文字的前兩個位元組來定義其編碼格式的。定義如下 ansi 無格式定義 unicode 前兩個位元組為fffe unicode big endian 前兩位元組為feff utf 8 前兩位元組為efbb 檔案的字符集在windows下有兩種,一種是ansi,一種unicode。...
判斷乙個文字檔案的編碼格式
檔案的字符集在windows下有兩種,一種是ansi,一種unicode。對於unicode,windows支援了它的三種編碼方式,一種是小尾編碼 unicode 一種是大尾編碼 bigendianunicode 一種是utf 8編碼。我們可以從檔案的頭部來區分乙個檔案是屬於哪種編碼。當頭部開始的兩...