Foxtable(狐表)用户栏目专家坐堂 → [求助]如何按照规则的文本转换成层级编码


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

主题:[求助]如何按照规则的文本转换成层级编码

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


加好友 发短信
等级:九尾狐 帖子:2179 积分:17863 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]如何按照规则的文本转换成层级编码  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/17 2:30:00 [只看该作者]

按顺序循环每一行。

 

如果碰见如 一、二、三,就得到 1、2、3

 

如果碰见 (一),就得到上面的比如2.1

 

以此类推。


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


加好友 发短信
等级:九尾狐 帖子:2179 积分:17863 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/17 14:20:00 [只看该作者]

没有的,这个只能使用笨办法

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


加好友 发短信
等级:九尾狐 帖子:2179 积分:17863 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2017/3/17 14:38:00 [只看该作者]

如何判断这个字符串是以大写字母开头,还是以小写字母开头,还是以中文数字开头,还是以阿拉伯数字开头?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/17 15:00:00 [只看该作者]

以下是引用chnfo在2017/3/17 13:20:00的发言:
问题是大写的用户直接写成“一六三”,不是“一百六十三”,这个咋整?如果把它拆分为一个个字符,再转换为数值,这个效率就有点……

CLNum可以将数字转换为中文,有没有将中文转换为整数的函数?

[此贴子已经被作者于2017/3/17 13:29:49编辑过]

 

写什么不要紧,不是按照顺序下来的吗?按照顺序累加1,不管是什么字符。


 回到顶部