以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何按照规则的文本转换成层级编码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=97695) |
-- 作者:chnfo -- 发布时间:2017/3/16 22:42:00 -- [求助]如何按照规则的文本转换成层级编码 表A中有一列,是用文本表述的,各行示例如下: 一、物品 (一)办公用品 1、电子 2、笔 3、本子 (1)A3本 (2)A4本 (3)B5本 A、** B、** (二)厨房用品 1 (1) (2) 2 (1) (2) 3 (1) 如何根据这样的文字编码形成数字层级码,例如 1 1.1 1.1.1 1.1.2 1.2 ……
[此贴子已经被作者于2017/3/16 22:42:26编辑过]
|
-- 作者:有点色 -- 发布时间:2017/3/17 2:30:00 -- 按顺序循环每一行。
如果碰见如 一、二、三,就得到 1、2、3
如果碰见 (一),就得到上面的比如2.1
以此类推。 |
-- 作者:chnfo -- 发布时间:2017/3/17 13:20:00 -- Dim zw1 As String = "零一二三四五六七八九" Dim val1 As String = "6九八1" Dim val2 As String For Each c As String In val1 If Char.IsDigit(c) Then val2 = val2 & zw1(cint(c)) Else val2 = val2 & zw1.IndexOf(c) End If Next output.show(val2) 另: 如何判断这个字符串是以大写字母开头,还是以小写字母开头,还是以中文数字开头,还是以阿拉伯数字开头?
[此贴子已经被作者于2017/3/17 14:37:16编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/3/17 14:20:00 -- 没有的,这个只能使用笨办法 |
-- 作者:chnfo -- 发布时间:2017/3/17 14:38:00 -- 如何判断这个字符串是以大写字母开头,还是以小写字母开头,还是以中文数字开头,还是以阿拉伯数字开头? |
-- 作者:有点色 -- 发布时间:2017/3/17 15:00:00 -- 以下是引用chnfo在2017/3/17 13:20:00的发言:
问题是大写的用户直接写成“一六三”,不是“一百六十三”,这个咋整?如果把它拆分为一个个字符,再转换为数值,这个效率就有点…… CLNum可以将数字转换为中文,有没有将中文转换为整数的函数? [此贴子已经被作者于2017/3/17 13:29:49编辑过]
写什么不要紧,不是按照顺序下来的吗?按照顺序累加1,不管是什么字符。 |