vb导出txt文本如何能整列整齐的输出?

如图,我用了两个 vbtab,出来后并不是整齐的。
s=str1 & vbtab & vbtab & str2
请问:1、如何能使整列 是整齐的输出呀。
2、两个vbtab类似print tab(2)的写法应该是怎么样的?我写vbtab(2),提示缺少数组,如果我想写10个tab,总不能都用& vbtab & vbtab....这样连接起来吧?
谢谢
3、我用str1 & space(20-len(str1)) & str2 & space(20-len(str2)) 也不行,因为str1是汉字相当于两个数字的位置,str2是数字,所以这样也对不齐。

方案一、
print tab(5);str1;tab(20);str2
方案二、
s=str1 & string(20-len(str1)*2)," ") & str2

说明:在计算str1与str2之间的空格时,不考虑str2,只考虑str1的长度,因为是汉字所以len(str1)*2表示了占用宽度。你试试复制我的代码,或者仔细抄写我的代码看结果。

当然还有方案三,就比较麻烦了
print str1;
me.CurrentX =2000
print str2
也可以实现对齐

请验证无误后采用。谢谢追问

乘以2也不好使,名字中偶尔也会有数字,,,,

追答

看到方案三没有?

追问

看到方案3了,可是不是想在窗口输出,是想输出到变量,然后通过 open output,,print 来最终输出到 txt文件的。

追答

也可以达到,就是更麻烦些。

测量str1字符串的宽度,然后换算成半角字符的数量,在按照一个估计值去补足。

具体代码如下:

Private Sub Command1_Click()
    Const MaxWidth = 20 '假设str1最长10个汉字
    Dim Half As Single, Width_Str As Single, Chars_Str As Integer
    Dim File0 As String, File1 As String
    Dim s As String, str1 As String, str2 As String
    
    Half = TextWidth("a")
    Open File0 For Input As #1
    Open File1 For Output As #2 '这里我省略了如何获取这两个文件名以及其路径
    Do Until EOF(1)
        Input #1, str1, str2
        Width_Str = TextWidth(str1)
        Chars_Str = Width_Str / Half
        s = str1 & String(20 - Chars_Str, " ") & str2
        Print #2, s
    Loop
    Close #1
    Close #2
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-10
一个 vbtab占两个字的空间,你计算一下
相似回答