关于C#加载hex文件,并且寻址的方式修改数据
2015-04-24 18:10
204 查看
上位机开发中遇到一个提问,特此写一下,做备忘。
单片机开发时候生成hex文件,下载前我们需要修改hex文件中的一个地址,修改的原因是因为我们要在那个位置写下一个加密字符串,这个字符串是根据单片机的uid生成的,每个都不同。所以我们必须要寻址的方式找到这个位置,并且替换我们加密过的字符串。
贴代码:
01 public bool setmac(String hex,String add)
02 {
03 String old;
04 sr = new StreamReader(System.Environment.CurrentDirectory + "/test.hex", Encoding.Default);
05 int i = 0;
06
07 do
08 {
09 str = sr.ReadLine().Trim();
10 i++;
11 //iniString(str.Trim());
12
13 tbRevMsg.AppendText(str + "\n");
14 } while (str.Substring(3, 3) != add);
15
16 if (str.Substring(3, 3) == add)
17 {
18 //
MessageBox.Show(hex1.Substring(33, 8));
19
20 // old
= hex.Replace("000102030405", hex);
21 String qian = str.Substring(0,21);//
str.IndexOf("000102030405").ToString());
22 String hou = str.Substring(33, 10);
23 String new1 = qian + hex + hou;
24
25 sr.Close();
26
27 EditFile(i, new1, System.Environment.CurrentDirectory+"/test.hex");
28
29 }
30
31 return true;
32 }
33
34
35
36
37 //把这个方法直接复制到你的项目中,后面直接调用就行了
38 public static bool EditFile(int curLine,
单片机开发时候生成hex文件,下载前我们需要修改hex文件中的一个地址,修改的原因是因为我们要在那个位置写下一个加密字符串,这个字符串是根据单片机的uid生成的,每个都不同。所以我们必须要寻址的方式找到这个位置,并且替换我们加密过的字符串。
贴代码:
01 public bool setmac(String hex,String add)
02 {
03 String old;
04 sr = new StreamReader(System.Environment.CurrentDirectory + "/test.hex", Encoding.Default);
05 int i = 0;
06
07 do
08 {
09 str = sr.ReadLine().Trim();
10 i++;
11 //iniString(str.Trim());
12
13 tbRevMsg.AppendText(str + "\n");
14 } while (str.Substring(3, 3) != add);
15
16 if (str.Substring(3, 3) == add)
17 {
18 //
MessageBox.Show(hex1.Substring(33, 8));
19
20 // old
= hex.Replace("000102030405", hex);
21 String qian = str.Substring(0,21);//
str.IndexOf("000102030405").ToString());
22 String hou = str.Substring(33, 10);
23 String new1 = qian + hex + hou;
24
25 sr.Close();
26
27 EditFile(i, new1, System.Environment.CurrentDirectory+"/test.hex");
28
29 }
30
31 return true;
32 }
33
34
35
36
37 //把这个方法直接复制到你的项目中,后面直接调用就行了
38 public static bool EditFile(int curLine,
相关文章推荐
- Android;sql数据库:关于删除数据库数据无法刷新listview并且新listview的修改增加功能出现bug的问题
- 关于VB中数据的存储格式和寻址方式
- 关于C# JSON 数据传递方式
- c# 中关于DataReader读取数据的方式
- 关于ligerUI中ligerTree代码中的一个bug,造成该控件无法通过url的POST方式加载数据
- C#中关于在一个数据库同时修改2个数据的语法使用!
- 关于extjs checkboxgroup 数据修改时候数据匹配加载
- JS 工作随笔 07 关于JS提交表单的方式和与C#实现保存数据
- 关于动态加载的数据实现单选可取消的效果 并且附带 ScrollView滑动到指定位置
- 关于数据不满一屏时,下拉刷新和上拉加载同时响应出错解决办法(非正规方式)
- C#中DataGrid加载XML数据--在另外一页面修改数据
- C#实现仿新浪微博 BigPipe 数据加载方式
- C#关于取DataTable中中间数据的方法
- 一个小讨论 关于java 数据遍历时size不能修改
- [IE6 only]关于Flash/Flex,返回数据产生流错误Error #2032的解决方式
- 关于webView加载html代码 图片拦截修改
- mac pro 安装mysql并且配置my.cnf(添加默认字符集utf8,数据存放路径,修改已经建好的表的默认字符集等)
- 关于Java中从键盘读入各种数据的方式
- C# Access 修改数据
- b/s和C/S方法用C#递归方法把数据表加载到treeview控件中