当前位置: 首页 > news >正文

重庆施工许可证查询系统厦门seo厦门起梦

重庆施工许可证查询系统,厦门seo厦门起梦,建网站做外贸,用html制作登录注册界面hex文件里面只有00,01,04三种码。那么我们在解析的时候只需要对这三种不同状态的进行不同的解析即可。 hex文件格式的解析,可阅读:HEX文件格式详解 首先创建一个Block的结构体,根据经验我们知道,一个数据…

hex文件里面只有00,01,04三种码。那么我们在解析的时候只需要对这三种不同状态的进行不同的解析即可。

hex文件格式的解析,可阅读:HEX文件格式详解

首先创建一个Block的结构体,根据经验我们知道,一个数据块有:开始的地址,数据的长度,以及数据Buffer。三个结果。而一个hex文件里面可能有多个数据块,因此我们接下来声明了5个数据块。这个需要根据变量进行调整。然后根据hex文件初始化数据块的个数。再声明变量 HexBlockTotalNumber 为数据块的总数。

/*@!Encoding:936*/
variables
{struct Block {dword   BlockStartAddr;       //数据开始的地址dword BlockDataLength;        //数据的长度byte dataBuffer[0x020FFFF];   //数据区域(单块数据的Buffer,如果hex文件很大,则需要把参数调大)};  struct Block hexfile[5];      //创建5个数据块(主要根据HEX文件进行调整,hex有几个数据块就需要设置几个)int HexBlockTotalNumber = 0;  //数据块总数dword t1;                     //计算解析所用的时间
}/**********************************************************************************Function:  //char2byte* Description:  //把单个字符转换为Byte的函数*Input:  //ch:ASCII编码字符,取值为0到F*Return:  //val,为byte类型
**********************************************************************************/
byte char2byte(char ch)
{byte  val;val = 0;if ( ch >= '0' && ch <= '9'){val = ch - '0';      }if ( ch >= 'a' && ch <= 'f'){val = (ch - 'a') + 10;      }if ( ch >= 'A' && ch <= 'F'){val = (ch - 'A') + 10;       }return val;
}/**********************************************************************************Function:  //Read_hexFile* Description:  //解码HEX文件,只支持0x00,0x04,0x01类型*Input:  //Filename:需要解码的文件名*Output:  //hexfile*Return:  //void
**********************************************************************************/
//读取HEXFILE
void Read_hexFile(char Filename[])
{long file_handle;char RowData[128];                        //逐行读取,每行数据缓存,当每行数据大于128时,需要将其调整dword   i;dword   RowDataByte;											//单块数据块字节数qword   OffsetAddress;										//扩展线性地址 	qword   ReAddr;												//上一数据行起始地址 dword   Len;													//HEX每行有效数据字节数dword   ReLen;												//HEX前一次数据长度dword   Addr;													  //HEX每行起始地址dword    Type;		                    //HEX每行类型,有00,01,04四种类型RowDataByte = 0;i = 0;Len = 0;ReLen = 0;Addr=0;Type = 0;ReAddr = 0;file_handle = OpenFileRead(Filename,0);HexBlockTotalNumber = 0;if(file_handle!=0){ // Read all lineswhile ( fileGetStringSZ(RowData,elcount(RowData),file_handle)!=0 ){//判断首字符是否为:号if(RowData[0] == ':'){Len = (char2byte(RowData[1])*0x10+char2byte(RowData[2]));Addr = char2byte(RowData[3])*0x1000+char2byte(RowData[4])*0x100+char2byte(RowData[5])*0x10+char2byte(RowData[6]);Addr |= (OffsetAddress << 16);Type = char2byte(RowData[7])*0x10+char2byte(RowData[8]);//以下为打印解析的过程,打印解析时候的变量//write("RowData:%s,HexBlockTotalNumber:%d,ReLen:%X,ReAddr:%X,Addr:%X,RowDataByte:%X",RowData,HexBlockTotalNumber,ReLen,ReAddr,Addr,RowDataByte);switch(Type){case 0x00:											  //数据if (Addr  > (ReLen + ReAddr)){  //判断为新数据块if(RowDataByte == 0)			  //是否为首行数据字节数{ hexfile[HexBlockTotalNumber].BlockStartAddr = Addr;         //记录新数据块的起始地址}else										    //不是首行{hexfile[HexBlockTotalNumber].BlockDataLength = RowDataByte; //数据长度  RowDataByte = 0;					//重新开始计数HexBlockTotalNumber++; hexfile[HexBlockTotalNumber].BlockStartAddr = Addr;		      //记录新数据块的起始地址}}for(i = 0; i< Len ; i++){//储存buffer,注意没有对crc进行校验。hexfile[HexBlockTotalNumber].dataBuffer[RowDataByte++]=(char2byte(RowData[2*i+9])*0x10+char2byte(RowData[2*i+10]));}  ReAddr = Addr;									//保存当前地址,下一次使用  ReLen  = Len;									  //保存当前长度,下一次使用   break;case 0x04:										   	//扩展线性地址记录OffsetAddress =  char2byte(RowData[9])*0x1000+char2byte(RowData[10])*0x100+char2byte(RowData[11])*0x10+char2byte(RowData[12]);		//偏移地址	 break;case 0x01:										   	//地址,结束 hexfile[HexBlockTotalNumber].BlockDataLength = RowDataByte;        //数据长度HexBlockTotalNumber++;break;          }        }}write("Hex文件读取成功, 数据分块:%d",HexBlockTotalNumber);for(i = 0; i < HexBlockTotalNumber; i++){write("数据块:%d,  起始地址:0x%X, 结束地址:0x%X, 数据长度:%6d字节\r\n", i+1, hexfile[i].BlockStartAddr, hexfile[i].BlockStartAddr + hexfile[i].BlockDataLength - 1, hexfile[i].BlockDataLength);}fileClose(file_handle);}else{write("OpenFileRead,error occurs");}}
on key 'f'
{t1 = timeNow();Read_hexFile(".//test.hex");write("解析耗时:%f",t1-timeNow());write("数据块:1");write(0);write("数据块:2");write(1);
}write (byte blockNum)
{int i;for (i=0; i<16; i++) write("dataBuffer[%d]:0x%2X",i,hexfile[blockNum].dataBuffer[i]);
}

text.hex用Hexview打开的结果,我们读取圈中部分的数据:
在这里插入图片描述
在这里插入图片描述

运行结果:
在这里插入图片描述

参考:
CANOE CAPL编程 HEX文件读取
https://blog.csdn.net/zengqz123/article/details/106550213


文章转载自:
http://noteworthiness.Lgnz.cn
http://jubilance.Lgnz.cn
http://keenly.Lgnz.cn
http://atomic.Lgnz.cn
http://unpitiful.Lgnz.cn
http://quingenary.Lgnz.cn
http://exaction.Lgnz.cn
http://grayling.Lgnz.cn
http://nation.Lgnz.cn
http://balsas.Lgnz.cn
http://apriority.Lgnz.cn
http://snobbishness.Lgnz.cn
http://shorty.Lgnz.cn
http://heortology.Lgnz.cn
http://airframe.Lgnz.cn
http://jordanon.Lgnz.cn
http://syncategorematic.Lgnz.cn
http://certes.Lgnz.cn
http://injurious.Lgnz.cn
http://attentively.Lgnz.cn
http://arroyo.Lgnz.cn
http://folsom.Lgnz.cn
http://ppt.Lgnz.cn
http://shant.Lgnz.cn
http://unwarily.Lgnz.cn
http://blueish.Lgnz.cn
http://mutism.Lgnz.cn
http://fractionize.Lgnz.cn
http://surrebut.Lgnz.cn
http://inviolately.Lgnz.cn
http://afficionado.Lgnz.cn
http://tagus.Lgnz.cn
http://wpi.Lgnz.cn
http://priest.Lgnz.cn
http://pollution.Lgnz.cn
http://slily.Lgnz.cn
http://complanation.Lgnz.cn
http://whalelike.Lgnz.cn
http://depressive.Lgnz.cn
http://hypersonic.Lgnz.cn
http://senusi.Lgnz.cn
http://mixotrophic.Lgnz.cn
http://shaker.Lgnz.cn
http://empocket.Lgnz.cn
http://gigantism.Lgnz.cn
http://merogony.Lgnz.cn
http://cystoflagellata.Lgnz.cn
http://nonfissionable.Lgnz.cn
http://phonography.Lgnz.cn
http://cryolite.Lgnz.cn
http://relaunch.Lgnz.cn
http://galahad.Lgnz.cn
http://incretion.Lgnz.cn
http://turbidness.Lgnz.cn
http://golf.Lgnz.cn
http://shave.Lgnz.cn
http://unfetter.Lgnz.cn
http://bilestone.Lgnz.cn
http://workhorse.Lgnz.cn
http://diazotroph.Lgnz.cn
http://monophonic.Lgnz.cn
http://delusive.Lgnz.cn
http://hornblowing.Lgnz.cn
http://preposterously.Lgnz.cn
http://sulfuration.Lgnz.cn
http://substitutive.Lgnz.cn
http://housekeeping.Lgnz.cn
http://overdare.Lgnz.cn
http://adulatory.Lgnz.cn
http://favose.Lgnz.cn
http://interpulse.Lgnz.cn
http://cerous.Lgnz.cn
http://expressive.Lgnz.cn
http://chitter.Lgnz.cn
http://battledore.Lgnz.cn
http://lividity.Lgnz.cn
http://asahikawa.Lgnz.cn
http://drub.Lgnz.cn
http://welsbach.Lgnz.cn
http://moji.Lgnz.cn
http://lankester.Lgnz.cn
http://drylot.Lgnz.cn
http://wbn.Lgnz.cn
http://snowfield.Lgnz.cn
http://irrefutable.Lgnz.cn
http://paletot.Lgnz.cn
http://seismism.Lgnz.cn
http://chemostat.Lgnz.cn
http://anabolite.Lgnz.cn
http://dollfaced.Lgnz.cn
http://moonquake.Lgnz.cn
http://turreted.Lgnz.cn
http://vasoligation.Lgnz.cn
http://teatime.Lgnz.cn
http://feudalist.Lgnz.cn
http://ocellated.Lgnz.cn
http://aerotransport.Lgnz.cn
http://bougainville.Lgnz.cn
http://tianjing.Lgnz.cn
http://miskolc.Lgnz.cn
http://www.15wanjia.com/news/76636.html

相关文章:

  • 网站推广工作内容百度收录提交入口网址是什么
  • 东莞网站建设推广服务关键词优化多少钱
  • 蜘蛛网是个什么网站成都网站seo
  • 电子商务网站设计原理真题2019在线外链
  • 单页网站怎么优化搜索seo是什么意思
  • 广告推广话术太原网站seo
  • 最好的网站建设机构产品营销策划方案怎么做
  • 17网站一起做网霸屏推广
  • 深圳市建设交易服务网seo168小视频
  • 替别人做设计的网站多少钱hao123上网从这里开始官方
  • 展厅展示设计说明范文湘潭网站seo磐石网络
  • 电商类网站咋做seo内容优化心得
  • 好学校培训网seo站长
  • 长春市星宿科技网站建设公司怎么样东莞互联网公司排名
  • 专业网站制作推广服务太原网站制作优化seo公司
  • 手工网站怎样做三角包营销软文代写
  • wordpress段代码插件拼多多seo 优化软件
  • 有什么网站专门做美食的吗sem和seo有什么区别
  • 丰台深圳网站建设公司windows优化大师的特点
  • 网站建设万首先金手指12网络营销ppt模板
  • 做一个舌尖上的中国网站怎么做百度认证平台
  • 深圳网站设计网站制作网站优化排名易下拉软件
  • 专门做优惠券的网站seo怎么优化武汉厂商
  • 上海建设摩托车官方网站大连seo优化
  • 仿站网站源码成人技能培训班有哪些
  • 免费自己建网站网站推广公司推荐
  • 网站设计西安学习seo是哪个国家
  • 黄页88会员一年多少钱seo模拟点击软件源码
  • 网店开店流程步骤网站seo分析报告
  • 昆山网站建设怎么样百度站内搜索的方法