Foxtable(狐表)用户栏目专家坐堂 → 想达到每一列左对齐,请老师指教!


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

主题:想达到每一列左对齐,请老师指教!

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


加好友 发短信
等级:七尾狐 帖子:1692 积分:15736 威望:0 精华:0 注册:2017/6/1 23:12:00
想达到每一列左对齐,请老师指教!  发帖心情 Post By:2023/5/31 0:47:00 [只看该作者]

想达到每一列左对齐,请老师指教!
Dim Multi As String = "旋复花10g,前胡10g,荆芥穗15g,麻黄10g,赤芍30g,炙干草10g,姜半夏10g,桔梗15g,陈皮10g,白前2g,百部20g"
Dim ss As String
Dim Values() As String
Values = Multi.split(",")
Dim js As Integer = 1
For Index As Integer = 0 To Values.Length - 1
    ss = ss & Values(Index).PadRight(12)
    If js Mod 4 = 0 Then 
        ss = ss & vbcrlf
    End If
    js = js + 1
Next
output.show(ss)


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


加好友 发短信
等级:超级版主 帖子:105932 积分:538729 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/31 8:47:00 [只看该作者]

这个没有办法,因为每种字符(中文,数字,英文)的宽度都不一样。

除非全部转换为全角字符,注意空格也要全角的

……
ss = ss & StrToWide(Values(Index)).PadRight(12, " ")
……


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


加好友 发短信
等级:七尾狐 帖子:1692 积分:15736 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2023/5/31 8:57:00 [只看该作者]

全角太难看了,老师还有其他变向的方法吗?

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


加好友 发短信
等级:超级版主 帖子:105932 积分:538729 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/31 9:00:00 [只看该作者]

没有其它办法

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


加好友 发短信
等级:狐精 帖子:3042 积分:20364 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2023/5/31 9:12:00 [只看该作者]

借用群里面朋友写的,发出来方便下次好找
Dim 字符串 As String = "旋复花10g,前胡10g,荆芥穗15g,麻黄10g,赤芍30g,炙干草10g,姜半夏10g,桔梗15g,陈皮10g,白前2g,百部20g"
Dim 字符组() As String = 字符串.Split (",")
Dim 字符长度集 As New List(Of Integer)
For Each 字符 As String In 字符串.split(",") '循环数组,得到字符组的长度
    字符长度集.add(UKey.LenStrA(字符)) 'UKey有一个函数LenStrA,用计算字符串的字节长度(不能直接用字符长度集.add(Len(字符)))
Next
Dim 最大值 As Integer = 字符长度集.max
Dim 分组位数 As Integer = 4
Dim 集合型集合 As New List(Of List(Of String))
For 组头序号 As Integer = 0 To 字符组.Count - 1 Step 分组位数
    Dim 字符型集合 As New List(Of String)
    For 组内序号 As Integer = 0 To 分组位数 - 1
        Dim 总序号 As Integer = 组头序号 + 组内序号
        If 总序号 < 字符组.Count Then
    Dim 补全空白字符数 As Integer = 最大值 - UKey.LenStrA(字符组(组头序号 + 组内序号))
            字符型集合.Add(字符组(组头序号 + 组内序号) + Space(补全空白字符数 + 5))
        End If 
    Next
    集合型集合.Add(字符型集合)
Next
For Each 集合 As List(Of String) In 集合型集合
    Output.Show (String.Join ("", 集合))
Next
[此贴子已经被作者于2023/5/31 9:12:13编辑过]

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


加好友 发短信
等级:超级版主 帖子:105932 积分:538729 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/31 9:30:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部