Foxtable(狐表)用户栏目专家坐堂 → 排序问题


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

主题:排序问题

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/20 9:02:00 [显示全部帖子]

字符串是从左到右排序的,所以“A1”比“A10小”,“A10”比“A2”小,如果要字符串按数值排序,需要补齐,比如“A1”改为“A01”、“A2”改为“A02”,就可以按"A01、A02、....、A10"正常排序了。

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/20 9:12:00 [显示全部帖子]

另外增加一个排序列,手工排好序

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/20 11:16:00 [显示全部帖子]

如果数据没有什么规律,没有办法处理,建议增加排序列

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/20 11:44:00 [显示全部帖子]

Dim s As String = "T75D/SF20D"
Dim p As String = "\D+"
Dim r As New System.Text.RegularExpressions.Regex(p)
Dim str = r.Split(s)
For Each a As String In str
    If a > "" Then
        s = s.Replace(a, a.PadLeft(3, "0"))
    End If
Next
msgbox(s)


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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/20 14:25:00 [显示全部帖子]

正则校验。具体网上搜搜吧

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/20 15:06:00 [显示全部帖子]

有重复的内容,换种方法

Dim s As String = "C26S/2"
Dim p As String = "\d+"
Dim str = System.Text.RegularExpressions.Regex.Replace(s, p, New MatchEvaluator(Function(a As Match) As String
Return a.Value.PadLeft(3, "0")
End Function ))
Output.Show(str)

 回到顶部