中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

美萍企業(yè)管理軟件海外aso優(yōu)化

美萍企業(yè)管理軟件,海外aso優(yōu)化,抖音代運(yùn)營(yíng)協(xié)議模板,購(gòu)物網(wǎng)站開(kāi)發(fā)分工hex文件里面只有00,01,04三種碼。那么我們?cè)诮馕龅臅r(shí)候只需要對(duì)這三種不同狀態(tài)的進(jìn)行不同的解析即可。 hex文件格式的解析,可閱讀:HEX文件格式詳解 首先創(chuàng)建一個(gè)Block的結(jié)構(gòu)體,根據(jù)經(jīng)驗(yàn)我們知道,一個(gè)數(shù)據(jù)…

hex文件里面只有00,01,04三種碼。那么我們?cè)诮馕龅臅r(shí)候只需要對(duì)這三種不同狀態(tài)的進(jìn)行不同的解析即可。

hex文件格式的解析,可閱讀:HEX文件格式詳解

首先創(chuàng)建一個(gè)Block的結(jié)構(gòu)體,根據(jù)經(jīng)驗(yàn)我們知道,一個(gè)數(shù)據(jù)塊有:開(kāi)始的地址,數(shù)據(jù)的長(zhǎng)度,以及數(shù)據(jù)Buffer。三個(gè)結(jié)果。而一個(gè)hex文件里面可能有多個(gè)數(shù)據(jù)塊,因此我們接下來(lái)聲明了5個(gè)數(shù)據(jù)塊。這個(gè)需要根據(jù)變量進(jìn)行調(diào)整。然后根據(jù)hex文件初始化數(shù)據(jù)塊的個(gè)數(shù)。再聲明變量 HexBlockTotalNumber 為數(shù)據(jù)塊的總數(shù)。

/*@!Encoding:936*/
variables
{struct Block {dword   BlockStartAddr;       //數(shù)據(jù)開(kāi)始的地址dword BlockDataLength;        //數(shù)據(jù)的長(zhǎng)度byte dataBuffer[0x020FFFF];   //數(shù)據(jù)區(qū)域(單塊數(shù)據(jù)的Buffer,如果hex文件很大,則需要把參數(shù)調(diào)大)};  struct Block hexfile[5];      //創(chuàng)建5個(gè)數(shù)據(jù)塊(主要根據(jù)HEX文件進(jìn)行調(diào)整,hex有幾個(gè)數(shù)據(jù)塊就需要設(shè)置幾個(gè))int HexBlockTotalNumber = 0;  //數(shù)據(jù)塊總數(shù)dword t1;                     //計(jì)算解析所用的時(shí)間
}/**********************************************************************************Function:  //char2byte* Description:  //把單個(gè)字符轉(zhuǎn)換為Byte的函數(shù)*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];                        //逐行讀取,每行數(shù)據(jù)緩存,當(dāng)每行數(shù)據(jù)大于128時(shí),需要將其調(diào)整dword   i;dword   RowDataByte;											//單塊數(shù)據(jù)塊字節(jié)數(shù)qword   OffsetAddress;										//擴(kuò)展線性地址 	qword   ReAddr;												//上一數(shù)據(jù)行起始地址 dword   Len;													//HEX每行有效數(shù)據(jù)字節(jié)數(shù)dword   ReLen;												//HEX前一次數(shù)據(jù)長(zhǎng)度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 ){//判斷首字符是否為:號(hào)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]);//以下為打印解析的過(guò)程,打印解析時(shí)候的變量//write("RowData:%s,HexBlockTotalNumber:%d,ReLen:%X,ReAddr:%X,Addr:%X,RowDataByte:%X",RowData,HexBlockTotalNumber,ReLen,ReAddr,Addr,RowDataByte);switch(Type){case 0x00:											  //數(shù)據(jù)if (Addr  > (ReLen + ReAddr)){  //判斷為新數(shù)據(jù)塊if(RowDataByte == 0)			  //是否為首行數(shù)據(jù)字節(jié)數(shù){ hexfile[HexBlockTotalNumber].BlockStartAddr = Addr;         //記錄新數(shù)據(jù)塊的起始地址}else										    //不是首行{hexfile[HexBlockTotalNumber].BlockDataLength = RowDataByte; //數(shù)據(jù)長(zhǎng)度  RowDataByte = 0;					//重新開(kāi)始計(jì)數(shù)HexBlockTotalNumber++; hexfile[HexBlockTotalNumber].BlockStartAddr = Addr;		      //記錄新數(shù)據(jù)塊的起始地址}}for(i = 0; i< Len ; i++){//儲(chǔ)存buffer,注意沒(méi)有對(duì)crc進(jìn)行校驗(yàn)。hexfile[HexBlockTotalNumber].dataBuffer[RowDataByte++]=(char2byte(RowData[2*i+9])*0x10+char2byte(RowData[2*i+10]));}  ReAddr = Addr;									//保存當(dāng)前地址,下一次使用  ReLen  = Len;									  //保存當(dāng)前長(zhǎng)度,下一次使用   break;case 0x04:										   	//擴(kuò)展線性地址記錄OffsetAddress =  char2byte(RowData[9])*0x1000+char2byte(RowData[10])*0x100+char2byte(RowData[11])*0x10+char2byte(RowData[12]);		//偏移地址	 break;case 0x01:										   	//地址,結(jié)束 hexfile[HexBlockTotalNumber].BlockDataLength = RowDataByte;        //數(shù)據(jù)長(zhǎng)度HexBlockTotalNumber++;break;          }        }}write("Hex文件讀取成功, 數(shù)據(jù)分塊:%d",HexBlockTotalNumber);for(i = 0; i < HexBlockTotalNumber; i++){write("數(shù)據(jù)塊:%d,  起始地址:0x%X, 結(jié)束地址:0x%X, 數(shù)據(jù)長(zhǎng)度:%6d字節(jié)\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("解析耗時(shí):%f",t1-timeNow());write("數(shù)據(jù)塊:1");write(0);write("數(shù)據(jù)塊: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打開(kāi)的結(jié)果,我們讀取圈中部分的數(shù)據(jù):
在這里插入圖片描述
在這里插入圖片描述

運(yùn)行結(jié)果:
在這里插入圖片描述

參考:
CANOE CAPL編程 HEX文件讀取
https://blog.csdn.net/zengqz123/article/details/106550213

http://www.risenshineclean.com/news/49710.html

相關(guān)文章:

  • WordPress里h1跟p有什么重慶seo海洋qq
  • 大連市公眾平臺(tái)網(wǎng)站搜索網(wǎng)頁(yè)內(nèi)容
  • 做ppt音樂(lè)怎么下載網(wǎng)站網(wǎng)絡(luò)小說(shuō)排行榜
  • 用rp怎么做網(wǎng)站導(dǎo)航菜單收錄提交入口網(wǎng)址
  • 起重機(jī)網(wǎng)站怎么做荊門(mén)今日頭條新聞發(fā)布
  • 卡通設(shè)計(jì)類網(wǎng)站欣賞網(wǎng)絡(luò)營(yíng)銷軟件大全
  • 臺(tái)州網(wǎng)站建設(shè)公司營(yíng)銷型網(wǎng)站建設(shè)
  • 寵物網(wǎng)站開(kāi)發(fā)與實(shí)現(xiàn)結(jié)論西部數(shù)碼域名注冊(cè)
  • 中央取消全國(guó)各地核酸檢測(cè)河北seo技術(shù)培訓(xùn)
  • 紹興網(wǎng)站建設(shè)方案托管建站模板哪個(gè)好
  • 一站式服務(wù)圖片開(kāi)封seo公司
  • 手機(jī)軟件制作和做網(wǎng)站相同短視頻培訓(xùn)學(xué)校
  • wordpress 插入文章seo品牌優(yōu)化
  • 中區(qū)網(wǎng)站建設(shè)營(yíng)銷知識(shí)和技巧
  • 揭陽(yáng)網(wǎng)站開(kāi)發(fā)如何查詢域名注冊(cè)人信息
  • wordpress建站給媒體分類整站快速排名
  • 電子商務(wù)網(wǎng)站開(kāi)發(fā)需求文檔深圳seo公司助力網(wǎng)絡(luò)營(yíng)銷飛躍
  • 安康北京網(wǎng)站建設(shè)aso安卓?jī)?yōu)化
  • 南京網(wǎng)站建設(shè)潤(rùn)洽海外廣告投放公司
  • 松江附近做網(wǎng)站seo是什么職位
  • 南寧品牌網(wǎng)站建設(shè)公司網(wǎng)站推廣120種方法
  • wordpress數(shù)據(jù)庫(kù)大數(shù)據(jù)游戲行業(yè)seo整站優(yōu)化
  • 網(wǎng)站頂部有空白產(chǎn)品推銷
  • 東莞網(wǎng)站優(yōu)化電話域名解析查詢工具
  • 淮北做網(wǎng)站的公司有哪些怎么開(kāi)網(wǎng)站平臺(tái)
  • 天津網(wǎng)絡(luò)推廣培訓(xùn)seo手機(jī)排名軟件
  • 北京市建設(shè)官方網(wǎng)站泉州seo報(bào)價(jià)
  • 上海網(wǎng)站制作公司的排名免費(fèi)seo教程分享
  • 十堰高端網(wǎng)站建設(shè)武漢seo計(jì)費(fèi)管理
  • 彩票網(wǎng)站里的統(tǒng)計(jì)怎么做太原seo建站