Foxtable(狐表)用户栏目专家坐堂 → 求助:复杂的字符拆分代码


  共有2022人关注过本帖树形打印复制链接

主题:求助:复杂的字符拆分代码

帅哥哟,离线,有人找我吗?
刘异
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:429 积分:4658 威望:0 精华:0 注册:2015/11/23 21:29:00
求助:复杂的字符拆分代码  发帖心情 Post By:2017/10/26 9:45:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:字符拆分.rar

老师,帮忙看一下,怎么写代码,我弄了2天,没有做出来。
多谢!!

 回到顶部
帅哥哟,离线,有人找我吗?
刘异
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:429 积分:4658 威望:0 精华:0 注册:2015/11/23 21:29:00
  发帖心情 Post By:2017/10/26 9:46:00 [只看该作者]

图片如下:
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171026093904.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/26 10:56:00 [只看该作者]

参考代码

 

Dim str As String = "P1234567890123456781T987654321Q0005000"
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
            msgbox("产品" & v.Substring(1))
        ElseIf v.startswith("T") Then
            msgbox("批次" & v.Substring(1))
        ElseIf v.startswith("Q") Then
            msgbox("数量" & v.Substring(1))
        End If
    Next
End If


 回到顶部
帅哥哟,离线,有人找我吗?
刘异
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:429 积分:4658 威望:0 精华:0 注册:2015/11/23 21:29:00
  发帖心情 Post By:2017/10/27 17:29:00 [只看该作者]

老师好:
直接提取:P后面的18位,T后面的9位,Q后面的7位;分别填入,产品编号,批次编号、数量列应该怎么写代码呢?

多谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 回到顶部