这两天导师给了个任务,利用can通讯传输数据,由于CAN的数据域最大通过八个字节,但是今天在用C#导入bin文件的时候,文件里面又“\n""\r"等字符串导致提取数据很不方便,而且BIN文件中的都是十六进制的数,所以在网上找了方法发现可以成功,分享一下,利用的是正则表达式
另外也可以直接去除,不用添加程序集的引用
参考链接:https://www.cnblogs.com/zxtang/p/14787501.html
提取十六进制其实就是提取字符串中的字母与数字。
1.首先加入using System.Text.RegularExpressions;
2.然后去除字符串中的"\n"、"\r"等字符,用下面这段程序
string data;
data = Regex.Replace(s, "[^0-9A-Fa-f]", "", RegexOptions.IgnoreCase);
这个时候data就是只有大小写字母与数字的字符串。自己根据自己需要看看怎么选取
或者直接去除,不需要添加程序集引用
string data2;
data2 =s.Replace("\t", "").Replace(" ", "").Replace("\n", "").Replace("\r", "");
效果与上图一模一样。两种方法供大家参考