注册 登录
编程论坛 VB6论坛

求:数列输出左对齐的问题

phyccylb 发布于 2013-03-28 10:57, 636 次点击
各位高手给帮个忙,菜鸟一个求救
输出到text1中格式如下:
            12345       22465       3248           
1 东                                         45272   
            23456       32475       4468     
2 东南西北                                   41278
            12345       22467       3254      
3                                            27654


中文和数字字符串混合输出最后一列如何对齐?菜鸟求详细代码,谢谢

  
         
5 回复
#2
风吹过b2013-03-28 11:38
你自定义一个函数,负责给数据增加前导空格,那就可以对齐了。
调用时很简单:
print #1,spacelen(1,3);spacelen("东",12);spacelen("45272",8)
函数会自动到前面添加空格,使字符串为指定的长度,那就可以对齐了。


-----------------------------------------------------------------
Public Function spacelen(cs As Variant, slen As Long)
Dim i As Long
Dim s() As Byte
'不使用len函数,是因为 中文字符宽度问题
s = StrConv(cs, vbFromUnicode)
i = UBound(s) + 1
If i < slen Then
    spacelen = Space(slen - i) & cs
Else
spacelen = cs
End If
End Function
#3
phyccylb2013-03-28 14:00
以下是引用风吹过b在2013-3-28 11:38:59的发言:

你自定义一个函数,负责给数据增加前导空格,那就可以对齐了。
调用时很简单:
print #1,spacelen(1,3);spacelen("东",12);spacelen("45272",8)
函数会自动到前面添加空格,使字符串为指定的长度,那就可以对齐了。
 
 
-----------------------------------------------------------------
Public Function spacelen(cs As Variant, slen As Long)
Dim i As Long
Dim s() As Byte
'不使用len函数,是因为 中文字符宽度问题
s = StrConv(cs, vbFromUnicode)
i = UBound(s) + 1
If i < slen Then
    spacelen = Space(slen - i) & cs
Else
spacelen = cs
End If
End Function
谢谢风吹过的帮助问题已基本解决,但是中文字体是否可以左侧可以对齐?那样岂不更美观,望盼
只有本站会员才能查看附件,请 登录
#4
风吹过b2013-03-29 09:06
左边齐,就是在尾部加空格。那么你再复制一个 函数 ,改一下函数里的 添加空格的位置就是了。
然后这些中文就换过函数就是了。

----------------------------------
Public Function spacelen(cs As Variant, slen As Long)         '在头添加空格以达到指定长度
Dim i As Long
Dim s() As Byte
'不使用len函数,是因为 中文字符宽度问题
s = StrConv(cs, vbFromUnicode)
i = UBound(s) + 1
If i < slen Then
    spacelen = Space(slen - i) & cs                 '空格加到头
Else
spacelen = cs
End If
End Function

Public Function spacelenR(cs As Variant, slen As Long)         '在尾添加空格以达到指定长度
Dim i As Long
Dim s() As Byte
'不使用len函数,是因为 中文字符宽度问题
s = StrConv(cs, vbFromUnicode)
i = UBound(s) + 1
If i < slen Then
    spacelen = cs & Space(slen - i)              '空格加到尾
Else
spacelen = cs
End If
End Function
#5
风吹过b2013-03-29 09:06
如果你要中间对齐,那这个函数就可以改成 二端加空格
也只能改那一句就行了。
#6
phyccylb2013-04-01 10:24
以下是引用风吹过b在2013-3-29 09:06:12的发言:

左边齐,就是在尾部加空格。那么你再复制一个 函数 ,改一下函数里的 添加空格的位置就是了。
然后这些中文就换过函数就是了。
 
----------------------------------
Public Function spacelen(cs As Variant, slen As Long)         '在头添加空格以达到指定长度
Dim i As Long  
Dim s() As Byte  
'不使用len函数,是因为 中文字符宽度问题  
s = StrConv(cs, vbFromUnicode)  
i = UBound(s) + 1  
If i < slen Then  
    spacelen = Space(slen - i) & cs                 '空格加到头
Else  
spacelen = cs  
End If  
End Function
 
Public Function spacelenR(cs As Variant, slen As Long)         '在尾添加空格以达到指定长度
Dim i As Long  
Dim s() As Byte  
'不使用len函数,是因为 中文字符宽度问题  
s = StrConv(cs, vbFromUnicode)  
i = UBound(s) + 1  
If i < slen Then  
    spacelen = cs & Space(slen - i)              '空格加到尾
Else  
spacelen = cs  
End If  
End Function
此问题已解决,谢谢风吹过的帮助,十分的感谢
1