以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [灌水] 如何让Output的显示效果排整齐点  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13682)

--  作者:mr725
--  发布时间:2011/10/23 0:31:00
--  [灌水] 如何让Output的显示效果排整齐点

For Each dc As DataCol In DataTables("表A").DataCols
nn = nn + 1
    Output.Show("第 " & format(nn,"000") & " 列:  " & "【" & dc.name & "】" & _
    "  的字符长度是:   " &  dc.name.length)
Next

 

上面代码是要显示列名的字符长度来,其结果是(不整齐):


第 001 列:  【v1】  的字符长度是:   2
第 002 列:  【v2】  的字符长度是:   2
第 003 列:  【计划号】  的字符长度是:   3
..........
第 015 列:  【半成品合格率】  的字符长度是:   6
第 016 列:  【装窑合格率】  的字符长度是:   5

 

想要显示这样整齐的效果(整齐),怎么做? : 


此主题相关图片如下:未命名.jpg
按此在新窗口浏览图片

 

这是例子:

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:output.rar

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

--  作者:hanxuntx
--  发布时间:2011/10/23 6:59:00
--  

For Each dc As DataCol In DataTables("表A").DataCols
nn = nn + 1
    Output.Show("第 " & format(nn,"000") & " 列:  " & "【" & dc.name.PadRight(你要达到的长度,比如7个字符,也可以编列所有字段,取最大值) & "】" & _
    "  的字符长度是:   " &  dc.name.length)
Next

[此贴子已经被作者于2011-10-23 6:58:48编辑过]

--  作者:czy
--  发布时间:2011/10/23 13:22:00
--  

楼上的思路是对的。

不过这个问题好像无解,狐表中英文和数字都算一个字符,空格也是一个字符,这样用PadRight就补不齐了。


--  作者:gdlgh
--  发布时间:2011/10/23 14:42:00
--  

\'这个System.Text.Encoding.Default.GetByteCount可以解决

 

Dim n1,n2,n3 As Integer
Dim str As String
For Each dc As DataCol In DataTables("表A").DataCols
    n1=System.Text.Encoding.Default.GetByteCount(dc.name)
    If n1>n2 Then
        n2=n1
    End If
Next
For Each dc As DataCol In DataTables("表A").DataCols
    n1=System.Text.Encoding.Default.GetByteCount(dc.name)
    str = "第 " & format(n3,"000") & " 列:  "
    str &= "【" & dc.name & left("                 ",n2-n1) & "】"
    str &=  "  的字符个数是:   " &  dc.name.length
    n3 +=1
    Output.Show(str)
Next

[此贴子已经被作者于2011-10-23 14:43:31编辑过]

--  作者:czy
--  发布时间:2011/10/23 18:05:00
--  
学习了。
--  作者:qtcks
--  发布时间:2011/10/23 19:12:00
--  

Dim a As String = "123"
a=a.padleft(10)
output.show("["+a+"]")

 

[       123]


--  作者:qtcks
--  发布时间:2011/10/23 19:13:00
--  

PadLeft

在字符串左侧填充空格或指定的字符,使得字符串的长度达到指定的长度。

语法:

PadLeft(Length)
PadLeft(Length, Char)

参数:

Length: 希望字符串达到的长度。
Char: 可选参数,指定用于填充的字符,如果省略,则用空格填充。

例如:

Dim

s1 As String ="abcd"
Dim
s2 As String = s1.PadLeft(6,"0")
Dim
s3 As String = s1.PadLeft(6)
Output.Show(
"s2 = """ & s2 & """")
Output.Show(
"s3 = """ & s3 & """")

在命令窗口执行上述代码,输出结果是:

s2 = "00abcd"
s3 = " abcd"

再例如我们要定义一个字符串,并将字符串的值设为100个空格,这还真是一个难题,因为100个空格可不是那么好数的。
如果用PadLeft,那么就很简单:

Dim s1 As String = " ".PadLeft(100)


--  作者:qtcks
--  发布时间:2011/10/23 19:16:00
--  
 

PadRight

在字符串右侧填充空格或指定的字符,使得字符串的长度达到指定的长度。


--  作者:布莱克朱
--  发布时间:2011/10/23 19:25:00
--  
这个好
--  作者:e-png
--  发布时间:2011/10/24 0:22:00
--  

4楼好。学习。

这 str &= "【" & dc.name & left("                     ",n2-n1) & "】"  中间的空格太妙了。