好久沒有新增文章了,前一陣子渡過一段暗無天日的忙碌生活(瞎忙?),今天難得有時間好好的改一下擱置已久的問題,這次所遇到的是要把一個二進制的bin檔輸出成十六進制格式的文字檔案,這種格式就會像是我們用UltraEdit開啟檔案後再選擇十六進制的模式。這個小動作我想了很久,一值在找VC6是否有可以簡單完成的API,找了好久後我放棄了(應該是沒有),剛好翻了之前在大陸買的"Visual C++開發經驗技巧寶典",找到了一個類似的範例,解決了這次的問題 :)
DWORD filelen= 0, readlen= 0, pos = 0;
CString strbin;
BYTE buf[16];
CFile f;
f.Open("123.bin",CFile::modeRead);
filelen = f.GetLength();
FILE *fp;
fp=fopen("123.txt", "a");
while(1)
{
readlen = f.Read(buf,16);
CString strtemp;
for(int i = 0 ; i <16; i ++)
{
strtemp.Format("%02X",buf[i]);
if(i == 15)
fprintf(fp, "%s;\n", strtemp);
else
fprintf(fp, "%s ", strtemp);
}
pos+=readlen;
if(pos >= filelen)
break;
}
fclose(fp);
輸出的格式如下圖:
2008年12月8日 星期一
二進制存檔
標籤: C/C++
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言