1、vb处理完数据之后,输出到文件
    Open App.Path & "\3.txt" For Append As #3
    Print #3, arr(i - 1, 1)
    Print #3, classbpp(1) 
    Print #3, classtemp(1)
    Print #3, output(7) 
    Print #3, "处理完毕"
    Close #3现在如果其中某一两条记录为空,怎么让他不输出?
比如classbpp(1) 没有值,输出的时候就是一个空行
如果有三条记录都是空的话,输出时就会空出三行,怎么能让没有数据的行不输出?
这段程序是在一个循环里的,每循环一次就要输出几个空行,实在太浪费空间了,请问兄弟有没有办法?2、classbpp(1)是在一个for-next循环里的
for =1 to 100
classbpp(1) = classbpp(1) & arr(i, 3) & " " & arr(i, 4) &" " & arr(i, 5) &" " & arr(i, 6) &" " & arr(i, 7) & vbNewLine
next那么,比如执行Print #3, classbpp(1) 时,输出的结果是:
2012001001 张三 体育1 1.0 88 公共必修课 (2007-2008-1)-5030001
2012001001 张三 工程制图基础 4.0 77 公共必修课 (2007-2008-1)-2010001
2012001001 张三 大学计算机基础 3.0 92 公共必修课 (2007-2008-1)-2030053
2012001002 李四 社会学 2.0 75 公共选修课 (2008-2009-2)-3020002
2012001002 李四 基础会计学 3.0 81 学科基础课 (2009-2010-1)-2050048
2012001002 李四 中小企业信息化管理解析 1.5 85 公共选修课 (2009-2010-1)-3020069
2012001002 李四 画法几何及工程制图2 4.0 80 专业选修课 (2009-2010-1)-2040108
2012001002 李四 毛泽东思想和中国特色社会主义理论体系概论 6.0 84 公共必修课 (2009-2010-1)-2060165
2012001003 王五 体育1 1.0 88 公共必修课 (2008-2009-1)-5030001
2012001003 王五 思想道德修养与法律基础 3.0 72 公共必修课 (2008-2009-1)-2060005
2012001003 王五 大学计算机基础 3.0 68 公共必修课 (2008-2009-1)-2030053我想要的结果是:
2012001001 张三         体育1                                    1     88 公共必修课 (2007-2008-1)-5030001
2012001001 张三         工程制图基础                             4.0   77 公共必修课 (2007-2008-1)-2010001
2012001001 张三         大学计算机基础                           0.5   92 公共必修课 (2007-2008-1)-2030053
2012001002 李四         社会学                                   2.0   75 公共选修课 (2008-2009-2)-3020002
2012001002 李四         基础会计学                               3     81 学科基础课 (2009-2010-1)-2050048
2012001002 李四         中小企业信息化管理解析                   1.5   85 公共选修课 (2009-2010-1)-3020069
2012001002 李四         画法几何及工程制图2                      4     80 专业选修课 (2009-2010-1)-2040108
2012001002 李四         毛泽东思想和中国特色社会主义理论体系概论 6.0   84 公共必修课 (2009-2010-1)-2060165
2012001003 王五         体育1                                    1.0   88 公共必修课 (2008-2009-1)-5030001
2012001003 王五         思想道德修养与法律基础                   3.0   72 公共必修课 (2008-2009-1)-2060005
2012001003 王五         大学计算机基础                           3.0   68 公共必修课 (2008-2009-1)-2030053该怎么做呢?多谢啦~~

解决方案 »

  1.   

    classbpp(1) = classbpp(1) & arr(i, 3) & " " & arr(i, 4) &" " & arr(i, 5) &" " & arr(i, 6) &" " & arr(i, 7) & vbNewLine有个 vbNewLine 那是一定有值的, 你判断除了vbNewLine后是否有值,没值或字节数不够就去掉 vbNewLine啊if len(classbpp(1) )< X  then 
    replace(classbpp(1) , vbNewLine,"")  '或者直接不print了
    end if
      

  2.   

    这个恐怕你得失望了,对齐与文字的大小有关,各种字体对字符的宽度设计可能是不一样的,即使同一字体中的数字字符、英文字符、符号、汉字等也有可能是不同的。
    txt文件是无格式文件,不保存文字的大小、颜色等信息,即使你做到在某一种字体大小下对齐了,换个字体或字号就可能乱了。
    注意不要把数据保存格式和排版的格式搞混了,数据保存格式和字体没有关系,但排版的格式一定和字体相关
      

  3.   

      Open App.Path & "\3.txt" For Append As #3
      If arr(i - 1, 1) > "" Then Print #3, arr(i - 1, 1)
      If classbpp(1) > "" Then Print #3, classbpp(1)  
      If classtemp(1) > "" Then Print #3, classtemp(1)
      If output(7) > "" Then Print #3, output(7)  
      Print #3, "处理完毕"
      Close #3for = 1 to 100
        strTmp = arr(i, 3) & vbTab & arr(i, 4) & vbTab & arr(i, 5) & vbTab & arr(i, 6) & vbTab & arr(i, 7)
        If strTmp > "" Then classbpp(1) = classbpp(1) & strmp & vbNewLine
    next