以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在账户及户名列中提取前19位到表的另外一列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83034)

--  作者:kaituozhe
--  发布时间:2016/3/30 7:44:00
--  在账户及户名列中提取前19位到表的另外一列
在账户及户名列中提取前19位到表的另外一列,想通过代码实现以下代码该怎么修改
If e.DataCol.name = "账号及户名" Then
        e.DataRow("对方账号")  = e.DataRow("账号及户名").SubString(0,18)
End If

--  作者:Hyphen
--  发布时间: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
--  发布时间:2016/3/30 9:20:00
--  
6228480712431969112李三  类似这个账号需要拆分,但是账号长度、户名长度及总长度都不固定,需要增加一些判断,找到账号的长度、户名的长度及总长度,该怎么做?比如想找到第一个不是汉字的字符该用什么函数?
--  作者:大红袍
--  发布时间: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
--  发布时间: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

--  作者:大红袍
--  发布时间: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
--  发布时间:2016/7/31 15:32:00
--  
123456ADREW怎么分开

--  作者:大红袍
--  发布时间: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
--  发布时间:2016/9/5 5:11:00
--  
5001.01.01.05.063(格式只是类似,位数不固定)  在这个数据串中,我想提取第一个 “.”前数据、最后一个点以后的数据或任意点与点之间的数据,怎么办?
--  作者:有点蓝
--  发布时间: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