aa.txt内容如下:
测试1
[|]测试1续行1
[|]测试1续行2
测试2
测试3
测试4
[|]测试4续行1
[|]测试4续行2
测试5
测试6
测试7
测试8
测试9
测试10
测试11
==========添加ListBox和Command控件
ListBox控件的Style属性=1
窗体代码
----------------------------------
Private Sub Command1_Click()
Me.List1.Clear
Open App.Path & "\aa.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, x'此处如何加一个循环,实现下面的目的?
Me.List1.AddItem x'此处如何加一个循环,实现下面的目的?
Loop
Close #1
End Sub
========要将以下三行:
测试1
[|]测试1续行1
[|]测试1续行2
读到listbox的一条里(但有换行,也就是说三行前面只有一个checkbox),
测试4
[|]测试4续行1
[|]测试4续行2
读到listbox的一条里,也就是说每行开头有[|]标记的都算是上一行的续行
您看有办法吗?谢谢!

解决方案 »

  1.   

    可变text(x,y)
    test(1,0)
    text(1,1)
    text(1,2)
    ....
    text(2,0)
    .
    .
    .
    判断每行里是不是有"[",有就text(x,y+1),没有就text(x+1,y),读完后再做出listbox
      

  2.   

    Private Sub Command1_Click()
            Dim x As String
            Dim temp As String
            
            Me.List1.Clear
            
            Open App.Path & "\aa.txt" For Input As #1
            
            Do While Not EOF(1)
               Line Input #1, x '此处如何加一个循环,实现下面的目的?
               
               If Left(x, 3) = "[|]" Then
                     temp = Me.List1.List(List1.ListCount - 1)
                     temp = temp & Right(x, Len(x) - 3)
                     Me.List1.RemoveItem (List1.ListCount - 1)
                     Me.List1.AddItem temp
               Else
                     Me.List1.AddItem x '此处如何加一个循环,实现下面的目的?
               End If
               
            Loop
            
            Close #1
    End Sub
      

  3.   

    Private Sub Command1_Click()
        Dim x As String
        
        List1.Clear
        Dim strTemp     As String
        Open App.Path & "\aa.txt" For Input As #1
            Do Until EOF(1)
                Line Input #1, x
                strTemp = strTemp & Trim$(x) & Chr$(0)
            Loop
        Close #1
        
        strTemp = Replace(strTemp, Chr$(0) & "[|]", "")
        
        Dim strIn()     As String
        strIn = Split(strTemp, Chr$(0))
        
        Dim i   As Long
        For i = 0 To UBound(strIn)
            List1.AddItem strIn(i)
        Next
        
    End Sub
      

  4.   

    以上代码测试通过,在处理续行的问题上,把  [|]  也给去掉了,觉得续行在重新拼合的时候应该是连续的一段话,所以自做主张把 [|] 给剔掉了,如果楼主要保留 [|] 的话,可以将下面的代码    strTemp = Replace(strTemp, Chr$(0) & "[|]", "")改为    strTemp = Replace(strTemp, Chr$(0) & "[|]", "[|]")
    即可。
      

  5.   

    注释一下:Private Sub Command1_Click()
        Dim x As String
        
        List1.Clear
        Dim strTemp     As String
        Open App.Path & "\aa.txt" For Input As #1
            Do Until EOF(1)
                Line Input #1, x
                
                '/* 不管三七二十一,先把数据读入到字符串中 */
                '/* 每一行用 Chr$(0) 分隔开来              */
                strTemp = strTemp & Trim$(x) & Chr$(0)
            Loop
        Close #1
        
        '/* 找到含有 Chr$(0) & "[|]" 标记的地方,知道这个就是续行 */
        '/* 替换掉我们自定义的段落分隔 Chr$(0), 这里同时把 "[|]"  */
        '/* 也给剔掉了                                            */
        strTemp = Replace(strTemp, Chr$(0) & "[|]", "")
        
        Dim strIn()     As String
        strIn = Split(strTemp, Chr$(0))     '/* 根据我们定义的段落标记拆分 */
        
        Dim i   As Long
        For i = 0 To UBound(strIn)
            '/* 导入数据 */
            List1.AddItem strIn(i)
        Next
        
    End Sub
      

  6.   

    谢谢roger_xiong, flyingZFX!再请问:listbox能不能分成多行?效果如下:
    □测试1
     测试1续行1
     测试1续行2
    □测试2
    □测试3
    □测试4
     测试4续行1
     测试4续行2
    □测试5
    □测试6
    □测试7
    □测试8
    □测试9
    □测试10
    □测试11
      

  7.   

    另请 roger_xiong, flyingZFX两位留下Email或QQ,我另有问题请教!谢谢