HEX文件说明Hex文件的INTEL格式:这是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16进制数字表示.
这是一个例子:
:10008000AF5F67F0602703E0322CFA92007780C361
:1000900089001C6B7EA7CA9200FE10D2AA00477D81
:0B00A00080FA92006F3600C3A00076CB
:00000001FF
第一行,":"符号表明记录的开始. 后面的两个字符表明记录的长度,这里是10h. 后面的四个字符给出调入的地址,这里是0080h. 后面的两个字符表明记录的类型;0 数据记录 1 记录文件结束 2 扩展段地址记录 3 开始段地址记录 4 扩展线性地址记录 5
开始线性地址记录后面则是真正的数据记录, 最后两位是校验和检查,它加上前面所有的数据和为0.最后一行特殊,总是写成这个样子.
那位能给出从HEX中提取出数据和地址的代码?谢谢。

解决方案 »

  1.   

    int n=0;
    while(n<nEnd)//先把所有字符转换成字节
    {
    if(pHex[n]==':')//发现':'就新增一条记录
    {
    pByteArray=new CArray<BYTE,BYTE>;
    arByteRec.Add(pByteArray);//增加一条记录
    n++;
    }
    }
    这段是死循环吧
      

  2.   

    int   n=0; 
    while(n <nEnd)//先把所有字符转换成字节 

    if(pHex[n]== ': ')//发现 ': '就新增一条记录 

    pByteArray=new   CArray <BYTE,BYTE> ; 
    arByteRec.Add(pByteArray);//增加一条记录 
    //n++; 
    }
    n++ ;