以下是引用mr725在2011-10-24 20:00:00的发言:
gdlgh前辈厉害!
这个是关键:n1=System.Text.Encoding.Default.GetByteCount(dc.name) 以前lxl版主教过,呵呵。
不需要空格: str &= "【" & dc.name.Padright(n2-n1+dc.name.length) & "】"
不需要空格,但多用了一个函数的计算开销!
另一思路,改进为只用一个循环!显示结果一样!
Dim n1,n2,n3,n As Integer
Dim str As String
n=20 '设定最大列名长度是10个中文字符,一般不会大过这个数吧^v^
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
str &= "第 " & format(n3+1,"000") & " 列: "
str &= "【" & dc.name & left(Space(n),n-n1)& "】"
str &= " 的字符个数是: " & dc.name.length & vbcrlf
n3 +=1
Next
Output.Show(str.Replace("】".PadLeft(n-n2+1),"】"))