以文本方式查看主题 - 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我们" |
-- 作者: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 |