Foxtable(狐表)用户栏目专家坐堂 → 在账户及户名列中提取前19位到表的另外一列


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

主题:在账户及户名列中提取前19位到表的另外一列

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
在账户及户名列中提取前19位到表的另外一列  发帖心情 Post By:2016/3/30 7:44:00 [只看该作者]

在账户及户名列中提取前19位到表的另外一列,想通过代码实现以下代码该怎么修改
If e.DataCol.name = "账号及户名" Then
        e.DataRow("对方账号")  = e.DataRow("账号及户名").SubString(0,18)
End If

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/3/30 8:49:00 [只看该作者]

If e.DataCol.name = "账号及户名" Then
    Dim str As String = e.DataRow("账号及户名")
    If str > "" AndAlso str.Length > 18 Then
        e.DataRow("对方账号")  = str.SubString(0,18)
    End If
End If

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/3/30 9:20:00 [只看该作者]

6228480712431969112李三  类似这个账号需要拆分,但是账号长度、户名长度及总长度都不固定,需要增加一些判断,找到账号的长度、户名的长度及总长度,该怎么做?比如想找到第一个不是汉字的字符该用什么函数?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/30 9:27:00 [只看该作者]

参考代码

 

Dim str As String = "123456我们"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]+")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If


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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/3/30 10:06:00 [只看该作者]

If e.DataCol.name = "账号及户名" Then
    Dim str As String = e.DataRow("账号及户名")
    Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]+")
    If str > "" AndAlso mc.count > 0 Then
        e.DataRow("对方账号")  = str.SubString(0,mc(0).Length-1)
    End If
    If str > "" AndAlso mc.count > 0 Then
        e.DataRow("对方户名")  = str.SubString(mc(0).Length,str.Length-1)
    End If
End If
以上代码黄色部分错误在那里一直提示如下:
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.3.19.1
错误所在事件:表,农行原始, DataColChanged
详细错误信息:
调用的目标发生了异常。
索引和长度必须引用该字符串内的位置。
参数名: length

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/30 10:10:00 [只看该作者]

Dim str As String = "123456我们"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]+")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If
mc = System.Text.RegularExpressions.Regex.Matches(str, "[\u4e00-\u9fa5]+")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/7/31 15:32:00 [只看该作者]

123456ADREW怎么分开

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/31 16:12:00 [只看该作者]

Dim str As String = "123456ABCDEFG"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "[0-9]+")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If
mc = System.Text.RegularExpressions.Regex.Matches(str, "[a-zA-Z]+")
If mc.count > 0 Then
    msgbox(mc(0).value)
End If

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


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/9/5 5:11:00 [只看该作者]

5001.01.01.05.063(格式只是类似,位数不固定)  在这个数据串中,我想提取第一个 “.”前数据、最后一个点以后的数据或任意点与点之间的数据,怎么办?

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/5 9:01:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/scr/0245.htm

Dim Multi As String = "5001.01.01.05.063"
Dim Values() As String
Values = Multi.split(".")
For Index As Integer = 0 To Values.Length - 1
    Output.Show(Values(Index)) 
Next

 回到顶部