如读写更改文本文件第2行的值?

解决方案 »

  1.   

    Private Sub Command2_Click()
    Dim s As String, ls_Content() As String
    Dim LogCount As Long    Open "f:\readme.txt" For Input As #1
        s = StrConv(InputB(LOF(1), #1), vbUnicode) '将文件内容附给变量 S
        Close #1
        ls_Content = Split(s, vbCrLf) '将每一行的信息放入数组
    MsgBox ls_Content(1)'这就是读第二行的信息,如果想读第三行就ls_Content(2),以此类推
    End Sub
      

  2.   

    '更改的代码Private Sub Command2_Click()
    Dim s As String, ls_Content() As String
    Dim LogCount As Long
    Dim i As Long
        Open "f:\readme.txt" For Input As #1
        s = StrConv(InputB(LOF(1), #1), vbUnicode) '将文件内容附给变量 S
        Close #1
        ls_Content = Split(s, vbCrLf) '将每一行的信息放入数组
         ls_Content(1) = "ABCDEF" '更改第二行.
         LogCount = UBound(ls_Content)
         s = ls_Content(0)
         For i = 1 To LogCount
             s = s & vbCrLf & ls_Content(i)
         Next i
         
         Open "f:\readme.txt" For Output As #1
         Print #1, Trim(s) '写入内容
         Close #1
    End Sub
      

  3.   

    ' 获得文本框中某一行的内容
    ' hwnd 为文本框的句柄, Line 为文本框中的行号
    Function GetTextLines(ByVal hwnd As Long, ByVal Line As Long) As String
        Dim length As Long, bArr() As Byte, bArr2() As Byte, lc As Long
        lc = SendMessage(hwnd, EM_LINEINDEX, Line - 1, ByVal 0&)
        length = SendMessage(hwnd, EM_LINELENGTH, lc, ByVal 0&)
        If length > 0 Then
            ReDim bArr(length + 1) As Byte, bArr2(length - 1) As Byte
            Call RtlMoveMemory(bArr(0), length, 2)
            Call SendMessage(hwnd, EM_GETLINE, Line - 1, bArr(0))
            Call RtlMoveMemory(bArr2(0), bArr(0), length)
            GetTextLines = StrConv(bArr2, vbUnicode)
        Else
            GetTextLines = ""
        End If
    End Function得到该行内容之后相信你也会弄了吧