写个格式转换的工具

hnlijianhua 2018-04-20 09:51:12
假如我从txt文本导入一段代码后,如下:
cmd(0x36);

cmd(0x21);
dat(0x14);

cmd(0x36);
dat(0x48);
dat(0x38);
dat(0x28);


怎么转换成我想要的格式呢?如下格式:
{0x36, 0,{0x00}},

{0x21, 1,{0x14}},

{0x36, 3,{0x48, 0x38, 0x28}}, ////3 为cmd后带dat 参数的个数。



以下代码,为什么if判断只能走一次呢,不能循环?
string str_cmd = "cmd";
string[] sArray = new string[40];
sArray = str.Split(new string[] { "(", ");" }, StringSplitOptions.RemoveEmptyEntries);

//string str = System.Text.Encoding.Default.GetString(sArray);


for (int i = 0; i <sArray.Length; i++) ////区分大小写
{
if (str_cmd == sArray[i]) ///// sArray为从文本文件分割来的字符串数组
{

textBox2.AppendText("{"+ sArray[i] +","+","+sArray[i]+","+"}},\n");

}
...全文
674 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2018-04-21
  • 打赏
  • 举报
回复
sArray.Length看看是多少,切割成功了没有
xuzuning 2018-04-21
  • 打赏
  • 举报
回复
很简单,切割后,只有一个元素符合条件 要这样写: sArray = str.Split(new string[] { "(", ");","\r\n" }, StringSplitOptions.RemoveEmptyEntries); 你已然有 StringSplitOptions.RemoveEmptyEntries 了,不妨用单个字符做分隔符,这样适应性强些
sArray = str.Split(new string[] { "(", ")", ";", "\r", "\n", " " }, StringSplitOptions.RemoveEmptyEntries);

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧