以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 将某列的字符拆成两列 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=40839) |
||||
-- 作者:tj-pacer -- 发布时间:2013/10/1 16:17:00 -- 将某列的字符拆成两列 现材料规格列的值如下: 1020mm*100M 500mm*200M 1020mm*50M 980mm*400M 54"*350ft 36"*50ft 想将上述值拆分成: "材料宽mm" "材料长M" 1020 100 500 200 1020 50 980 400 (54*25.4) (400*0.3048) (36*25.4) (50*0.3048) 如英制转换公制的值不好弄,把公制的拆开也会省大量人工。
|
||||
-- 作者:有点甜 -- 发布时间:2013/10/1 16:34:00 -- 参考下面的代码来改,弄不好的话,上传一个例子,说明要怎么做。
Dim data() As String = {"1020mm*100M", "36""*50ft"} |
||||
-- 作者:yan2006l -- 发布时间:2013/10/1 16:35:00 -- 第一步:(以*号拆分两列) 利用Split方法,可以用指定的分割符号,将一个字符串拆分成一个字符数组,例如: Dim Tel As String = "0759-3166876"Dim Parts() As String = Tel.Split("-") Output.Show("区号:" & Parts(0)) Output.Show("电话:" & Parts(1)) 在命令窗口执行上述代码,得到的结果是: 区号:0759
第二步:(将两列英语替换成“空值”或者“*比例”) 用Replace方法可以将字符串中的指定内容替换为另一个字符串,例如: Dim s As String = "abc123abc"s = s.Replace("123","789") \'将123替换为789 OutPut.Show(s) 在命令窗口执行上述代码,得到的结果是:abc789abc |
||||
-- 作者:tj-pacer -- 发布时间:2013/10/2 10:11:00 -- 感谢2楼3楼!还是不理解,上个例子,求解。
[此贴子已经被作者于2013-10-2 10:14:01编辑过]
|
||||
-- 作者:lsy -- 发布时间:2013/10/2 10:35:00 -- 说句大不敬的话,这样的数据、这样的表、这样的项目,就不应该拿出来用! 数据不规范,也可能是导入别人的,情有可原;列名也不规范,怨不得别人:大小写统一,不难吧? |
||||
-- 作者:有点甜 -- 发布时间:2013/10/2 11:15:00 -- 把下面的代码复制到命令窗口执行,可以一次性填入数据。
For Each dr As DataRow In DataTables("物料表").Select("规格型号 is not null") dr("规格型号_宽mm") = Eval(width) |
||||
-- 作者:tj-pacer -- 发布时间:2013/10/2 12:17:00 -- 搞定了,谢谢! |
||||
-- 作者:tj-pacer -- 发布时间:2013/10/2 12:19:00 -- 数据是导入的,好多数据需要整理规范,所以需要加工整理。 |
||||
-- 作者:lsy -- 发布时间:2013/10/2 13:29:00 -- 直接在导入后将【规格型号】列的数据规范化,不需要增加两列、再拆分: DataColChanged If e.DataCol.Name = "规格型号" Then [此贴子已经被作者于2013-10-2 13:48:58编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2013/10/2 14:32:00 -- 以下是引用lsy在2013-10-2 13:29:00的发言: 直接在导入后将【规格型号】列的数据规范化,不需要增加两列、再拆分: DataColChanged If e.DataCol.Name = "规格型号" Then [此贴子已经被作者于2013-10-2 13:48:58编辑过]
顶……
|