Foxtable(狐表)用户栏目专家坐堂 → 如何根据数据特征读出某些数据?


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

主题:如何根据数据特征读出某些数据?

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
如何根据数据特征读出某些数据?  发帖心情 Post By:2018/8/18 11:56:00 [只看该作者]

有一“文号”列数据,一般均为”苏发[2014]03号“、”苏办发[2013]112号“之类的,其共同特征是均有方括号"[]"
如何通过编程解决下面问题?
1、将”[“前的字号读出(如“苏发”、“苏办发”等),写入”字号“列?
2、将”[]’中的年度读出(如2013、2014),写入“年度列”?
3、将“]”后面,“号”前的数字(如03,112)读出,写入“编号”列?

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/18 11:59:00 [只看该作者]

Dim s As String = "苏办发[2013]112号"

Dim arr() As String = s.Split(new Char(){"[","]"})
For Each s1 As String In arr
    Output.Show(s1)
Next

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/8/18 13:09:00 [只看该作者]

蓝版主给的好象不是我想要的。我想由“文号”列读出数据,逐行分别写入“字号”、“年度”和“编号”列。
下面这个网址,曾经是我要的,但因为下面这句弄不明白,写出来后总有问题。
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=104950&skin=0

 Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=\()[0-9]+?(?=\))")





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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/18 14:13:00 [只看该作者]

不是很复杂的规则,没有必要使用正则,能够达到效果就行了

Dim s As String = "苏办发[2013]112号"

Dim arr() As String = s.Split(new Char(){"[","]"})
dr("字号") = arr(0)
dr("年度") = arr(1)
dr("编号") = arr(2).replace("","")

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/8/18 16:20:00 [只看该作者]

谢谢!写成下面的代码,可以执行得到结果。

        Dim dr As DataRow = e.DataRow
        Dim arr() As String = str1.Split(new Char(){"[","]","号"})
        dr("字号") = arr(0)
        dr("年度") = arr(1)
        dr("类目") = arr(2)

但首先会提示下面的错误信息,不太明白为什么会发生?

.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.7.28.1
错误所在事件:表,文件级目录,DataColChanged
详细错误信息:
调用的目标发生了异常。
索引超出了数组界限。

调用的目录发生异常!

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/18 16:24:00 [只看该作者]

数据不是统一的这种格式吧:"苏办发[2013]112号"

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/8/18 16:29:00 [只看该作者]

可能要加一个条件判断,否则,不是类似”苏办发[2013]112号“的数据,就会提示超出数组界限。

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/18 16:45:00 [只看该作者]

数据如果没有规律就很难搞了

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2018/8/18 16:48:00 [只看该作者]

确实不是统一格式,只有3种情况,一种是”无“,一种是”空“,另一种就是”苏办发[2013]112号“。
怎样加一个条件判断,只计算那种标准的情况,其它2种情况保持数据不变呢?

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


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/18 16:50:00 [只看该作者]

只有3种情况好办,判断一下字符是否包含中括号([)就行了

if str1.contains("[") then
拆分处理
end if

 回到顶部
总数 11 1 2 下一页