1.文件大小显示为:File Size:XXXM
2.在文件中找:MTK_ROMINFO
找到到将MTK_ROMINFO后的字符显示为 ROM:......
3.在刚才找到的字符串中找mt62显示在CPU后面为mt62xx。
4.将MTK62XX显示为: CPU:MTK62XX
5.从找到MTK_ROMINFO起256字节内找下一个字符串
显示在[MCU SW]之后。
找到后在文件后找刚才显示[MCU SW]这后面的字符串,假如后面没有日期的话就继续寻找下一个字符串,直到找到有日期的那个字符串为止。
在刚才那个有日期的字符串之后有一个BUILD_NO把NO之后的内容(不超过128个字节)显示在build之后。
找到后在64字节内的 XXXX/XX/XX
如果找不到XXXX/XX/XX继续找直到找到XXXX/XX/XX或到文件尾
找到XXXX/XX/XX后显示:BUILD:找到的字符串(不超过 128字节)
6.根据下面的表找语言信息*#0007# Russian(俄语)
*#0030# Greece(希腊)
*#0031# Dutch(荷兰)
*#0033# French(法文)
*#0034# Espana(西班牙语)
*#0036# Hungarian(匈牙利)
*#0039# Italy(意大利)
*#0040# Romanian 罗马尼亚
*#0043# Austria 奥地利
*#0044# English(英文)
*#0045# Danish 丹麦
*#0048# Polish 波兰
*#0049# Deutsch 德国
*#0060# Bahasa Melayu(马来语)
*#0062# Bahasa Indonesia(印度尼西亚语)
*#0063# tagalog 菲律宾
*#0066# Thai 泰语
*#0084# Vietnam(越南语)
*#0086# Chinese 简体中文
*#0090# turkey 土耳其
*#0091# Indo-Iranian 印度
*#0092# Pakistan 巴基斯坦
*#0098# Persian 波斯
*#0351# Portuguese 葡萄牙
*#0386# Slovenian 斯洛文尼亚
*#0420# Czech 捷克
*#0421# Slovak 斯洛伐克
*#0886# Chinese_tw 繁體中文
*#0966# Arabic 阿拉伯
*#0972# Hebrew 以色列经过了很久,还是没有搞定```老是多一点少一点的显示~查*#0086#这些指令``我也只能显示*#0086#而没有显示后面的语言.
下面是部分效果:
CPU: MT6253
File size: 12 Mb
ROM: GINWAVE53_12832_09A_PCB01_GPRS_MT6253_S00.YH-M60_02_V1-0-004_100809.BIN
BUILD: M09A NONE BF3603 MTKSOC1 YH-M60_02_V1-0-004_100809 GW-MZ10M-V1.0 2010/08/09 15:23
build: 09A GINWAVE53_12832_09A PF38F3050M0Y3DE FGDST7781
[MCU SW] YH-M60_02_V1-0-004_100809
FS(fat) - Start: 0xE00000, Size: 0x200000
### Warning ### File size or MTK_ROMINFO - BAD.
--- Languages --------------
*#0044# |en-US| English
*#0033# |fr-FR| Fran?ais
*#0034# |es-ES| Espa?ol
*#0351# |pt-PT| Português
*#0039# |it-IT| Italiano
*#0049# |de-DE| Deutsch
*#0060# |ms-MY| Bahasa Melayu
*#0062# |id-ID| Bahasa Indonesia
自己询问加自己做出的效果:
File Size: 12 M long.
ROM: MTK_ROMINFO_v07 GINWAVE53_12832_09A_PCB01_GPRS_MT6253_S00.YH-M60_02_V1-0-004_100809.BIN
CPU: MT6253_S00.YH-M60_02_V1-0-004_100809.BIN
[MCU SW]: YH-M60_02_V1-0-004_100809.BIN
TIMER: GW-MZ10M-V1.0 2010/08/09 15:23
LCD driver: GINWAVE53_12832_09A PF38F3050M0Y3DE
build: _NO_OF_ALLOCATION_BITMAP * 8
English: *#0044#
繁体中文: #0044#
简体中文: *#0086#
~~~有兴趣帮忙的大大直接Q我吧```ID就是,叫我Q~你们也行```
2.在文件中找:MTK_ROMINFO
找到到将MTK_ROMINFO后的字符显示为 ROM:......
3.在刚才找到的字符串中找mt62显示在CPU后面为mt62xx。
4.将MTK62XX显示为: CPU:MTK62XX
5.从找到MTK_ROMINFO起256字节内找下一个字符串
显示在[MCU SW]之后。
找到后在文件后找刚才显示[MCU SW]这后面的字符串,假如后面没有日期的话就继续寻找下一个字符串,直到找到有日期的那个字符串为止。
在刚才那个有日期的字符串之后有一个BUILD_NO把NO之后的内容(不超过128个字节)显示在build之后。
找到后在64字节内的 XXXX/XX/XX
如果找不到XXXX/XX/XX继续找直到找到XXXX/XX/XX或到文件尾
找到XXXX/XX/XX后显示:BUILD:找到的字符串(不超过 128字节)
6.根据下面的表找语言信息*#0007# Russian(俄语)
*#0030# Greece(希腊)
*#0031# Dutch(荷兰)
*#0033# French(法文)
*#0034# Espana(西班牙语)
*#0036# Hungarian(匈牙利)
*#0039# Italy(意大利)
*#0040# Romanian 罗马尼亚
*#0043# Austria 奥地利
*#0044# English(英文)
*#0045# Danish 丹麦
*#0048# Polish 波兰
*#0049# Deutsch 德国
*#0060# Bahasa Melayu(马来语)
*#0062# Bahasa Indonesia(印度尼西亚语)
*#0063# tagalog 菲律宾
*#0066# Thai 泰语
*#0084# Vietnam(越南语)
*#0086# Chinese 简体中文
*#0090# turkey 土耳其
*#0091# Indo-Iranian 印度
*#0092# Pakistan 巴基斯坦
*#0098# Persian 波斯
*#0351# Portuguese 葡萄牙
*#0386# Slovenian 斯洛文尼亚
*#0420# Czech 捷克
*#0421# Slovak 斯洛伐克
*#0886# Chinese_tw 繁體中文
*#0966# Arabic 阿拉伯
*#0972# Hebrew 以色列经过了很久,还是没有搞定```老是多一点少一点的显示~查*#0086#这些指令``我也只能显示*#0086#而没有显示后面的语言.
下面是部分效果:
CPU: MT6253
File size: 12 Mb
ROM: GINWAVE53_12832_09A_PCB01_GPRS_MT6253_S00.YH-M60_02_V1-0-004_100809.BIN
BUILD: M09A NONE BF3603 MTKSOC1 YH-M60_02_V1-0-004_100809 GW-MZ10M-V1.0 2010/08/09 15:23
build: 09A GINWAVE53_12832_09A PF38F3050M0Y3DE FGDST7781
[MCU SW] YH-M60_02_V1-0-004_100809
FS(fat) - Start: 0xE00000, Size: 0x200000
### Warning ### File size or MTK_ROMINFO - BAD.
--- Languages --------------
*#0044# |en-US| English
*#0033# |fr-FR| Fran?ais
*#0034# |es-ES| Espa?ol
*#0351# |pt-PT| Português
*#0039# |it-IT| Italiano
*#0049# |de-DE| Deutsch
*#0060# |ms-MY| Bahasa Melayu
*#0062# |id-ID| Bahasa Indonesia
自己询问加自己做出的效果:
File Size: 12 M long.
ROM: MTK_ROMINFO_v07 GINWAVE53_12832_09A_PCB01_GPRS_MT6253_S00.YH-M60_02_V1-0-004_100809.BIN
CPU: MT6253_S00.YH-M60_02_V1-0-004_100809.BIN
[MCU SW]: YH-M60_02_V1-0-004_100809.BIN
TIMER: GW-MZ10M-V1.0 2010/08/09 15:23
LCD driver: GINWAVE53_12832_09A PF38F3050M0Y3DE
build: _NO_OF_ALLOCATION_BITMAP * 8
English: *#0044#
繁体中文: #0044#
简体中文: *#0086#
~~~有兴趣帮忙的大大直接Q我吧```ID就是,叫我Q~你们也行```
解决方案 »
- 奇怪的问题,求解释
- 系统退出内存问题
- 我想做个投票器,请问应该从哪些地方下手?
- 两个VC和ACESS应用的小问题,在线等!
- 多给分,紧急求助
- 关于mdi窗口
- 如何把“CTRL+ALT+S”按键消息发送出来,前提是不能按这些键
- 在StatusBar中建一个button,该button会被自动disable,该怎么解决?
- 怎样用平台SDK在非对话框下创建控件窗口???
- 如何把汇编文件和C文件链接起来,.mak文件的详细写法是什么?(还有120分相赠)
- 高手帮我解决下: Visual C++ 6.0 生成具有自动化支持的 DLL 时,没是取消注册的函数,怎么编写代码?
- Win socket 发送数据的话我测试UDP就10MBPS,不能再高了?
{
DWORD dwsecondLen;
char szText[0x100]=""; //szText[d]
char *mtkFlag[11]={"MTK_ROMINFO","MT62","YH-M60_02_","GW-MZ10M",
"GINWAVE5","_NO","*#0044#","*#0034#","*#0033#","*#0049#","*#0039#"};
CString str1[11]={"ROM: ","CPU: ","[MCU SW]: ","TIMER: ", "LCD driver: ",
"build: ","English: ","Espana: ","French: ","Deutsch: ","Italy: "};
CString mtkversionInfo;
CFile fOpen;
// int strncmp( const char *string1, const char *string2, size_t count );
if(fOpen.Open(strfilename,CFile::modeRead)==NULL)
return "";
//得到文件的大小
DWORD dwLength = fOpen.GetLength();
CString str;
str.Format(_T("File Size: %u M long. \n"),dwLength/1024/1024);
// str.Format("File Size:%u M long.\n",ReadMTKInfo(m_strFileName));
m_edit1.ReplaceSel(str);
UpdateData(FALSE);
// AfxMessageBox(str);
//内存大小最好设置为动态
DWORD dwlen=0x1000000; //开辟一个16M的内存
char *pbuf=new char[0x1000000]; //NEW出内存指针
fOpen.Read(pbuf,0x1000000); //读取文件到特定的PBUF
fOpen.Close(); //关闭文件
for (int i = 0 ; i < 11 ; i ++)
{
//查找第几个关键字
dwsecondLen=CutBuffer(pbuf,dwlen, mtkFlag[i]);
if (dwsecondLen!=0)
{
dwlen=dwlen-dwsecondLen; //
pbuf=pbuf+dwsecondLen; //平移到特定的位置
memcpy(szText, pbuf,0x100);
//lstrlen(mtkFlag1)
//delete pbuf;
int n=strlen(szText);
if(n!=0)
*(szText+n)=0x20; //把空格付值给*(szText+n)
mtkversionInfo.Format("%s",szText);
m_edit1.SetSel(-1,-1);
m_edit1.ReplaceSel(str1[i]+mtkversionInfo);
m_edit1.ReplaceSel("\n");
UpdateData(FALSE);
mtkversionInfo="";
// return mtkversionInfo;
}
}
// if (pbuf!=0)
// {
// delete pbuf;
// }
return "";
}DWORD CFILEDlg::CutBuffer(char *pbuf, DWORD dwlen, char *mtkFlag)
{
DWORD bb;
for(int i=0; i<dwlen; i++)
{
bb=i;
if(strncmp(pbuf+i, mtkFlag, strlen(mtkFlag))==0)
return bb;
}
return 1;
}
以上是两个函数 if(n!=0)
*(szText+n)=0x20; 这里找的不是很准确,前面两个找对了``后面的就一塌糊涂
最新说明,对文件分块操作