本帖最后由 bcrun 于 2010-07-15 09:09:16 编辑

解决方案 »

  1.   

    定义一个中间变量 : dim s as string 
    将行 Line Input #lngHandle, strLine 改为以下两句:
    Line Input #lngHandle, s
    strLine = strLine & s
     
    你的问题是,循环中每次读一行,但是都把读到的前一行覆盖了,循环退出后,估计你的文件的最后一行是空行,所以最后strLine没有读到内容,变为空。
      

  2.   

    Private LngLine As Long
    Private strAll As StringPrivate Sub Command1_Click()
    Dim strFileName As String '文件名
    Dim I As Long
    Dim lngHandle As Long '文件句柄
    ’Dim strAll As String '所读取的文本文件的所有内容''''''''''''''''''''''''''''''''''
    Dim strLine As String '在循环中存放每行的内容
    LngLine = LngLine + 1
    I = 1
    strFileName = App.Path & "\账号.txt"
    '获得文件的句柄
    lngHandle = FreeFile()
    'For 后面的参数表示以何种方式打开文件,Input是读取,Output是覆盖写入,Append是追加写入
    Open strFileName For Input As lngHandle
    '循环直到文件尾
    Do While Not EOF(lngHandle)
    '每次读取一行存放在strLine变量中
    Line Input #lngHandle, strLine
    strAll = strAll & strLine'''''''''''''''''''''''''''''''''''''''''''''''
    if trim(strLine)="" then strLine = "读到空行"'''''''''''''''''''''''''''
    If I = LngLine Then Exit Sub
    I = I + 1
    DoEvents
    Text1 = strLine '看text1里是什么''''''''''''''''''''''''''''''''''''''''
    text2 = strAll '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Loop
    End Sub
      

  3.   

    Do While Not EOF(lngHandle)
    '每次读取一行存放在strLine变量中
    Line Input #lngHandle, strLine
    If I = LngLine Then Exit Sub
    I = I + 1
    DoEvents
    Text1 = Text1 & strLine
    Loop
      

  4.   

    Private LngLine As Long
    Private strAll As StringPrivate Sub Command1_Click()
    Dim strFileName As String '文件名
    Dim I As Long
    Dim lngHandle As Long '文件句柄
    ’Dim strAll As String '所读取的文本文件的所有内容''''''''''''''''''''''''''''''''''
    Dim strLine As String '在循环中存放每行的内容
    LngLine = LngLine + 1
    I = 1
    strFileName = App.Path & "\账号.txt"
    '获得文件的句柄
    lngHandle = FreeFile()
    'For 后面的参数表示以何种方式打开文件,Input是读取,Output是覆盖写入,Append是追加写入
    Open strFileName For Input As lngHandle
    '循环直到文件尾
    Do While Not EOF(lngHandle)
    '每次读取一行存放在strLine变量中
    Line Input #lngHandle, strLine
    strAll = strAll & strLine'''''''''''''''''''''''''''''''''''''''''''''''
    if trim(strLine)="" then strLine = "读到空行"'''''''''''''''''''''''''''
    If I = LngLine Then Exit Sub
    I = I + 1
    DoEventsLoop
    Text1 = strLine '看text1里是什么''''''''''''''''''''''''''''''''''''''''
    text2 = strAll '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    End Sub
      

  5.   

    你不是定义了个strAll吗,那就这样改好了:)另外,你还多定义了个Private strAll
    Private LngLine As Long
    Private strAll As StringPrivate Sub Command1_Click()
    Dim strFileName As String '文件名
    Dim I As Long
    Dim lngHandle As Long '文件句柄
    Dim strAll As String '所读取的文本文件的所有内容
    Dim strLine As String '在循环中存放每行的内容
    LngLine = LngLine + 1
    I = 1
    strFileName = App.Path & "\账号.txt"
    '获得文件的句柄
    lngHandle = FreeFile()
    'For后面的参数表示以何种方式打开文件,Input是读取,Output是覆盖写入,Append是追加写入
    Open strFileName For Input As lngHandle
    '循环直到文件尾
    Do While Not EOF(lngHandle)
    '每次读取一行存放在strLine变量中
    Line Input #lngHandle, strLine
    If I = LngLine Then Exit Sub
    I = I + 1
    DoEvents
    strAll = strAll & strLine & vbCrLf
    Loop
    Text1 = strAll
    End Sub
      

  6.   


    '模块级变量前面加上m前缀以示区别
    '一般前缀使用小写,无论是表示作用域还是类型
    Private mlLine As Long
    Private mstrAll As String '所有的文本信息
    Private mstrLines() As String '每一行的文本信息
    Private Sub Command1_Click()
    Dim strFileName As String
    Dim lFileNum As Long '要读取的文件号
    Dim bytData() As Byte
        strFileName = App.Path & "\账号.txt"
        lFileNum = FreeFile
        '以二进制流的方式读取文件,适用于任何情况,并且是速度最快的
        Open strFileName For Binary As #lFileNum
        ReDim bytData(1 To LOF(lFileNum))
        Get #lFileNum, , bytData
        '如果楼主的文档是ANSI格式,需要进行如下转换
        mstrAll = StrConv(bytData, vbUnicode)
        mstrLines = Split(mstrAll, vbCrLf)
        '这一行()是楼主要读的,strLine的下标从0开始
        Text1.Text = mstrLines(LngLine)
    End Sub
      

  7.   


    Private LngLine As Long
    Private strAll As StringPrivate Sub Command1_Click()
    Dim strFileName As String '文件名
    Dim I As Long
    Dim lngHandle As Long '文件句柄
    Dim strAll As String '所读取的文本文件的所有内容
    Dim strLine As String '在循环中存放每行的内容
    LngLine = LngLine + 1
    I = 1
    strFileName = App.Path & "\账号.txt"
    '获得文件的句柄
    lngHandle = FreeFile()
    Open strFileName For Input As lngHandle
    '循环直到文件尾
    Do While Not EOF(lngHandle)
       '每次读取一行存放在strLine变量中
       Line Input #lngHandle, strLine
       strAll = strAll & strLine & vbCrLf
       If I = LngLine Then Exit do         '注意这句
       I = I + 1
    Loop
    Text1 = strAll
    End Sub
      

  8.   

    Private Sub Command1_Click()
        Dim strFileName As String '文件名
        Dim lngHandle As Long '文件句柄
        Dim strAll As String '所读取的文本文件的所有内容
        Dim arrFile() As String
        
        strFileName = App.Path & "\账号.txt"
        lngHandle = FreeFile()
        
        Open strFileName For Input As #lngHandle
        strAll = Input(LOF(lngHandle), #lngHandle)
        arrFile = Split(strAll, vbCrLf)
        Text1.Text = arrFile(LngLine - 1)
        
        Close #lngHandle
    End Sub
      

  9.   

    Line Input #lngHandle, strLine
    I = I + 1
    If I = LngLine Then Exit Sub