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

网站手机pc同步网站建设与设计教程视频教程

网站手机pc同步,网站建设与设计教程视频教程,wordpress不显示全文,厦门小程序开发公司排名机缘 初心#xff1a;研究生期间#xff0c;帮老师做一个项目#xff0c;过程中学习的东西想记录下来#xff0c;于是#xff0c;就选择了CADN让技术分享成为工作的一部分 收获 获得了1800多粉丝的关注获得了63万的访问量#xff0c;其中《C#设计模式》专栏深受大家喜欢…机缘 初心研究生期间帮老师做一个项目过程中学习的东西想记录下来于是就选择了CADN让技术分享成为工作的一部分 收获 获得了1800多粉丝的关注获得了63万的访问量其中《C#设计模式》专栏深受大家喜欢关注了很多的技术大佬(主要在C#和汽车电子领域)从他们的文章中学到了很多 日常 创作已经是我生活的一部分了虽然工作很忙还是会主动挤出时间来创作 成就 Hex转bin文件的代码实现 using System; using System.Globalization; using System.IO; using System.Windows.Forms;namespace WindowsFormsApp1 {/*说明:1.hex内容读取规则示例: OxO-Ox500【所有字节内容都有】0x0-0x100,0x300-Ox500 【中间有部分地址内容缺失根据实际情况默认填充Ox00/OxFF】2.扩展地址分区也可刷写【重点】hex文件地址分区的话(segment)此代码也可以通过*/public partial class Form1 : Form{ public Form1(){InitializeComponent();}public static string hexFilePath null;//选择的hex文件路径public static string binFilePath null;//保存的bin文件路径private void btn_OpenFile_Click(object sender, EventArgs e){OpenFileDialog open new OpenFileDialog();open.RestoreDirectory true;//open.Filter File(*.hex,*.s19)|*.hex;*.s19|BIN File(*.bin)|*.bin;open.Filter File(*.hex)|*.hex;open.InitialDirectory Directory.GetCurrentDirectory();if (DialogResult.OK open.ShowDialog()){hexFilePath txt_HexFile.Text open.FileName;binFilePath open.FileName.Replace(.hex, .bin);//确定生成的bin文件路径}}private void btn_StartConvert_Click(object sender, EventArgs e){try{//【01】获取hex文件的起始和终止地址(Lowest_Address和Highest_Address) 并获取其字节长度(dataLength)GetAddress(hexFilePath);byte[] buffer new byte[dataLength]; //创建和hex文件对应长度的字节数组//【02】填充数组内容//情形1所有地址内容都在hex文件中情形2:在hex文件中有些地址内容缺失需要填充默认值“0x00”或“0xFF”FillData(hexFilePath, ref buffer);//【03】将数组写到bin文件WritetoBinFile(binFilePath, buffer, 0, dataLength);MessageBox.Show(转换成功);}catch (Exception ex){MessageBox.Show(ex.Message);}}public static int startAddress 0;//解析的起始地址public static int endAddress 0;//解析的终止地址public static int dataLength 0;//字节总长度endAddress-startAddress1public static string startExtendedAddress 0000;//第一个扩展地址public static string endExtendedAddress 0000;//最后一个扩展地址public static bool isFirstExtendedAddress true;//是否是第一次检测到“0x04”public static string startDataAddress 0000;//第一个数据地址【对应startExtendedAddress】public static string endDataAddress 0000;//最后一个数据地址【对应endExtendedAddress】public static bool isFirstDataAddress true;//是否是第一次检测到“0x00”public static string lastDataLength 00;//最后一行的数据长度/// summary/// 【第1步】获取hex文件的起始和终止地址并获取其字节长度/// /summary/// param namehexPath/paramprivate void GetAddress(string hexPath){FileStream fsRead new FileStream(hexPath, FileMode.OpenOrCreate, FileAccess.Read);StreamReader HexReader new StreamReader(fsRead); //读取数据流while (true){string currentLineData HexReader.ReadLine(); //读取Hex中一行if (currentLineData null) { break; } //读取完毕退出if (currentLineData.Substring(0, 1) :) //判断首字符是”:”{if (currentLineData.Substring(1, 8) 00000001){if (endExtendedAddress 0000){endAddress Convert2Hex(startExtendedAddress endDataAddress) Convert2Hex(lastDataLength) - 1;//获得终止地址dataLength endAddress - startAddress 1;}else{endAddress Convert2Hex(endExtendedAddress endDataAddress) Convert2Hex(lastDataLength) - 1;//获得终止地址dataLength endAddress - startAddress 1;}break;} //文件结束标识string type currentLineData.Substring(7, 2);switch (type){case 04:if (isFirstExtendedAddress){startExtendedAddress currentLineData.Substring(9, 4);isFirstExtendedAddress false;}else{endExtendedAddress currentLineData.Substring(9, 4);}break;case 00:if (isFirstDataAddress){startDataAddress currentLineData.Substring(3, 4);startAddress Convert2Hex(startExtendedAddress startDataAddress);//获得起始地址isFirstDataAddress false;}else{endDataAddress currentLineData.Substring(3, 4);lastDataLength currentLineData.Substring(1, 2);//为了获取最后一行的字节长度}break;default:break;}}}HexReader.Close();fsRead.Close();}/// summary///【第2步】填充数组内容/// /summary/// param namehexPathhex文件路径/param/// param namebuffer填充的字节数组/paramprivate void FillData(string hexPath, ref byte[] buffer){int lastLine_EndAddress_Real startAddress;//上一行结束的真实地址【扩展地址数据地址】,初始值为hex文件的起始地址int currentLine_StartAddress_Real 0;//下一行开始的真实地址【扩展地址数据地址】string currentExtendedAddress 0000;//当前扩展地址string currentLineDataAddress 0000;//当前数据地址int current_BufferIndex 0;FileStream fsRead new FileStream(hexPath, FileMode.OpenOrCreate, FileAccess.Read);StreamReader HexReader new StreamReader(fsRead); //读取数据流while (true){string currentLineData HexReader.ReadLine(); //读取Hex中一行if (currentLineData null) { break; } //读取完毕退出if (currentLineData.Substring(0, 1) :) //判断首字符是”:”{//文件结束标识if (currentLineData.Substring(1, 8) 00000001){break;} string type currentLineData.Substring(7, 2);//读取当前行的类型switch (type){case 04:currentExtendedAddress currentLineData.Substring(9, 4);break;case 00:currentLineDataAddress currentLineData.Substring(3, 4);//当前数据地址currentLine_StartAddress_Real Convert2Hex(currentExtendedAddress currentLineDataAddress);//实际开始地址值//如果这一次的起始地址不等于上一次结束的下一个地址则填充0x00if (currentLine_StartAddress_Real ! lastLine_EndAddress_Real){for (int i 0; i currentLine_StartAddress_Real - lastLine_EndAddress_Real; i) // 补空位置{byte value byte.Parse(00, NumberStyles.HexNumber);buffer[current_BufferIndex] value;current_BufferIndex;}}int currentLine_DataLength Convert2Hex(currentLineData.Substring(1, 2));//获取当前行的数据长度for (int i 0; i currentLine_DataLength; i){byte value byte.Parse(currentLineData.Substring(i * 2 9, 2), NumberStyles.HexNumber);buffer[current_BufferIndex] value;current_BufferIndex;}lastLine_EndAddress_Real currentLine_StartAddress_Real currentLine_DataLength;break;default:break;}}}//关闭Stream和文件HexReader.Close();fsRead.Close();//hex文件最后没有的byte填充“00”if (buffer.Length current_BufferIndex){for (int i 0; i buffer.Length - current_BufferIndex; i){byte value byte.Parse(FF, NumberStyles.HexNumber);buffer[current_BufferIndex i] value;}}}/// summary/// 【第3步】将数组写到bin文件/// /summary/// param namebinPath新建bin文件的路径/param/// param namebuffer写入的字节数组/param/// param namestartIndex开始索引/param/// param namelength写入的字节长度/paramprivate void WritetoBinFile(string binPath, byte[] buffer, int startIndex, int length){FileStream fsWrite new FileStream(binPath, FileMode.Create, FileAccess.Write);//如果已存在相同文件名的文件,则删掉之前的创建新的文件fsWrite.Write(buffer, startIndex, length);fsWrite.Close();}/// summary/// 16进制字符串 转化为数值/// /summary/// param namecontent16进制字符串/param/// returns/returnsprivate int Convert2Hex(string content){return Convert.ToInt32(content, 16);}} }憧憬 希望在汽车电子领域深耕创作更有价值的文章
http://www.dnsts.com.cn/news/155110.html

相关文章:

  • 毕业设计做网站 如何做自己做网站 教程
  • wordpress主题上的字怎么移动seo专业培训学费多少钱
  • 织梦系统做的商城网站企业网站管理系统破解版
  • 衣柜推拉门图案设计网站做网站需要知道什么
  • 怎样修改静态公司网站页面电话合肥网站建设黄页
  • 河南省建设厅网站门户建筑公司企业资料
  • 深圳设计公司最多的地方在哪如何写一份网站优化建设的方案
  • 浏览器编程语言手机优化大师哪个好
  • 公司建设网站申请报告范文以前做的网站怎么才能登陆后台
  • 网站服务器有哪些类型建行卡如何网上签约
  • 旅游网站系统设计萍乡网站建设公司
  • cms建站是什么.net做网站的吗
  • 室内设计接单的网站网站开发实战演练
  • 在线制作软件天津网站优化公司哪家好
  • 天津seo网站排名优化公司橙色网站后台模板
  • 网站限时抢购怎么做drupal个人门户网站开发
  • 如何设立网站医疗网站设计方案
  • wap 手机网站建设网站提交收录
  • 网站用户互动手机会员卡管理系统免费版
  • 网站建设工作人员有哪些职责手机购物网站源码
  • 一般公司做网站多少钱wordpress 图片分页
  • windows优化大师下载安装seo加wordpress工程师
  • 茶叶网站实际案例wordpress视频站代码
  • 展览会建设网站平台的作用wordpress 图片中文名
  • 网站开发技术考试题目外国做的中国动画视频网站
  • 北京管庄网站建设公司威联通做网站
  • dw建设网站的代码模板什么是企业云网站建设
  • 上海建筑公司排名有了网站怎么做优化
  • 如何开网站建设公司wordpress迁移后媒体库丢失
  • 教育加盟培训网站建设建设局网站信息发布规定