以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:复杂的字符拆分代码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108619) |
||||
-- 作者:刘异 -- 发布时间:2017/10/26 9:45:00 -- 求助:复杂的字符拆分代码
老师,帮忙看一下,怎么写代码,我弄了2天,没有做出来。 多谢!!
|
||||
-- 作者:刘异 -- 发布时间:2017/10/26 9:46:00 -- 图片如下: 此主题相关图片如下:qq图片20171026093904.png |
||||
-- 作者:有点甜 -- 发布时间:2017/10/26 10:56:00 -- 参考代码
Dim str As String = "P1234567890123456781T987654321Q0005000" |
||||
-- 作者:刘异 -- 发布时间:2017/10/27 17:29:00 -- 老师好: 直接提取:P后面的18位,T后面的9位,Q后面的7位;分别填入,产品编号,批次编号、数量列应该怎么写代码呢? 多谢!
|
||||
-- 作者:有点甜 -- 发布时间:2017/10/27 17:56:00 -- If e.DataCol.name = "条码编号" Then Dim str As String = e.NewValue If str > "" Then Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "T[0-9]+|P[0-9]+|Q[0-9]+") If mc.count = 3 Then For i As Integer = 0 To mc.count-1 Dim v = mc(i).value If v.startswith("P") Then e.DataRow("产品编号") = v.Substring(1) ElseIf v.startswith("T") Then e.DataRow("批次编号") = v.Substring(1) ElseIf v.startswith("Q") Then e.DataRow("数量") = v.Substring(1) End If Next Else e.DataRow("产品编号") = Nothing e.DataRow("批次编号") = Nothing e.DataRow("数量") = Nothing End If Else e.DataRow("产品编号") = Nothing e.DataRow("批次编号") = Nothing e.DataRow("数量") = Nothing End If End If |