Foxtable(狐表)用户栏目专家坐堂 → 格式化账号型字符


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

主题:格式化账号型字符

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 3:30:00 [显示全部帖子]

按照2楼的例子改了一下,符合输入任意长度字符串均可实现按规律分割的要求:

 

 

If e.Col.Name = "账号"

    Dim s As String = "," & e.Text

    For i As Integer = 1 To (len(s)\5+(len(s)\5)\5)

        s = s.Insert(i*5," ")

    Next

    e.Text = s.Replace(",","")

End If

 

 

1、循环次数减少N倍(N= 分割后的每小段字符串个数);

2、调整数字5,可分割为个人所需的理想长度,该公式一样可为通用;

3、输入任意长度字符串均可分割。

[此贴子已经被作者于2011-5-10 3:44:23编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 9:07:00 [显示全部帖子]

27楼已经满足绝大多数人的使用,但字符串长度过长的时候,会导致最后一段字符串超过指定个数不能分割,再修改一下,确保字符型列255个字符串都能完全分割,个中缘由望大家来思考,不为别的,只求多一种思路和技巧:

 

If e.Col.Name = "账号"
    Dim s As String = "," & e.Text
    For i As Integer = 1 To (len(s)\5+(len(s)\5)\5+((len(s)\5)\5)\5)
        s = s.Insert(i*5," ")
    Next
    e.Text = s.Replace(",","")
End If

 

原理和27楼一样

[此贴子已经被作者于2011-5-10 9:08:16编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 9:52:00 [显示全部帖子]

应该还有简洁方法,大家先想想,抽空我也试一试!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 11:30:00 [显示全部帖子]

再来一个,能给补一分吗:

 

If e.Col.Name = "账号"
    Dim s As String = e.Text
    For i As Integer = 4 To (len(s)+len(s)\4) Step 5
        s = s.Insert(i," ")
    Next
    e.Text = s
End If


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 11:32:00 [显示全部帖子]

这是35楼的示例文件:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目13.rar


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 11:38:00 [显示全部帖子]

哈哈,惭愧,我已经是黔驴技穷了,接下来我图片点击可在新窗口打开查看就该坐等100分出现了!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 19:16:00 [显示全部帖子]

祝贺,离满分不远了!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 22:13:00 [显示全部帖子]

以下是引用lxl在2011-5-10 21:52:00的发言:
Dim a As String = "11112222333344445555666677778888999"
Dim b As String = new RegularExpressions.Regex(".{4}").Replace(a, "$0 ")
output.show(b)

 

老兄,您总是这么出神入化,终于等到您这100分的出现了:

 

If e.Col.Name = "账号"
    Dim a As String =e.Text
    Dim b As String = new RegularExpressions.Regex(".{4}").Replace(a, "$0 ")
    e.Text = b
End If


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 22:19:00 [显示全部帖子]

我那个35楼的代码也还可以精简一下:

 

If e.Col.Name = "账号"
    For i As Integer = 4 To (len(e.Text)+len(e.Text)\4) Step 5
        e.Text = e.Text.Insert(i," ")
    Next
End If


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/5/10 22:28:00 [显示全部帖子]

      http://msdn.microsoft.com/zh-cn/library/system.text.regularexpressions.regex.replace.aspx
[此贴子已经被作者于2011-5-10 22:27:45编辑过]

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