textbox中的内容格式如下:
2019/05/28 18:32:26 : W20041700221{PT04Y220 CQW{X22-0704{110
110
求解将以上内容拆分成至少3段,并存入数据库中。如:ID=0,SN=W20041700221,PN=PT04Y220 CQW,Type =X22-0704,Qty=110(换行的110是重复的,需要去掉,{也是多余的)。每次更新的数据,都需要不重复的读入到数据库中,ID会依次先后更新。希望用C#来做这一块,目前数据可以从textbox读取,就是无法拆分这一长串字符串,并按预想的写入数据库中。
你这个格式是固定的吗,如果固定,可以用 Split(' ') 拆分,或者用正则匹配,多发几条数据来看看
目前手头只有这一个:K19052000143{CL10A106MP8NNNC{RECEIVE{224
最后一小串数字代表数量,是不确定的。
K19052000143代表跟踪号,定长;CL10A106MP8NNNC代表物料号,定长;224代表数量,数量可能是上百,也可能是224000,不确定的范围。
可以用sustring来处理,初步有效,但是后期数据量起来后,还要和另一个数据库比对,比以上问题描述更复杂。但当前主要是先把数据取出来,再看后面的需求。
@wzz0104: 正则:
string text = @"2019/05/28 18:32:26 : K19052000143{CL10A106MP8NNNC{RECEIVE{224";
Regex reg = new Regex(@"(: .*?){(.*?){(.*?){([0-9]*)");
if (reg.IsMatch(text))
{
var res = reg.Match(text);
Console.WriteLine("SN:" + res.Result("$1") + "\r\nPN:" + res.Result("$2") + "\r\nType:" + res.Result("$3") + "\r\nQty:" + res.Result("$4"));
}
谢谢你的回复。
TextBox中的文本内容如下:(文本框中的内容串码会实时更新,当前只是选一段串码测试,后期会是动态的多行字符串,但只有首码230和尾码230为不固定长度的,其他部分固定)
监听成功!!!
127.0.0.1:57968连接成功
127.0.0.1:57968--2019/5/31 11:09:59:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:00:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:01:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:01:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:01:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:02:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:02:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:02:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:02:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:02:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:03:
230
K19041700221{WR04X220 JTL{Q22-0704{230
127.0.0.1:57968--2019/5/31 11:10:03:
230
K19041700221{WR04X220 JTL{Q22-0704{230
图片截图如下:
为什么无法拆分?
刚接触这一块,不才,还请指导。