在vb6中编辑文本文件

时间:2013-10-24 16:44:02

标签: vb6

我在richtextbox中显示了文本文件。 并且onclick on textbox1的命令按钮值正在文本文件中替换。

但如何保留两个数据。上一个和另一个在文本框中输入新内容

我已经使用了这个代码,但它取代了所有文字:

Open "D:\chat.txt" For Output As #1
a = Text1.Text
Print #1,  a
Close #1

2 个答案:

答案 0 :(得分:4)

For Output更改为For Append,它会将新文本添加到文件末尾,而不是覆盖它。

答案 1 :(得分:0)

附加说明

因为我无法在Boann的答案中添加评论(标记为已接受的答案)。

Append语句使用的Print访问模式会自动在文件末尾添加一个新行。这几乎在所有情况下都很好,但是对于想要避免这种行为的任何人来说,只需在Print语句的末尾添加一个分号(这是我见过的唯一一个在VB6中使用的分号的实例)。

a = Text1.Text
intHandle = FreeFile
Open "D:\chat.txt" For Append As intHandle
  Print #intHandle, a; ' Notice the semicolon; prevents a new line after this output.
Close #intHandle

我确定您最初发布的代码只是为了获得答案,而不是您的代码实际上是什么样子。否则:

对于您或任何未来的读者,这里是一个简单的AppendToFile()函数,它将使重复调用更容易,确保文件在遇到运行时错误时关闭,并在失败时显示有用的调试信息(即文件名无效):

将以下函数放入代码时,如何编写原始代码:

AppendToFile "D:\chat.txt", Text1.Text

这是函数:

Private Function AppendToFile( _
  ByRef FilePath As String, _
  ByRef Text As String, _
  Optional ByVal AppendNewLine As Boolean = True _
) As Boolean

  On Error GoTo ErrorHandler

  Dim intHandle As Integer

  ' Get an available file handle to use.
  intHandle = FreeFile

  Open FilePath For Append As intHandle

    ' Only use semicolon at end if we do NOT want to append a new line.
    If AppendNewLine Then
      Print intHandle, Text
    Else
      Print intHandle, Text;
    End If

  Close intHandle

  intHandle = 0
  AppendToFile = True

  Exit Function
ErrorHandler:

  ' Ensure that file is indeed closed.
  If intHandle <> 0 Then
    Close intHandle
  End If

  ' Show error in debug window (CTRL+G)
  Debug.Print _
    "Error (#" & CStr(Err.Number) & ") in " & _
    "TextToFile( _" & vbCrLf & _
      "`" & FilePath & "`, _" & vbCrLf & _
      "`" & Text & "`, _" & vbCrLf & _
      IIf(AppendNewLine, "`True`", "`False`") & vbCrLf & _
      "): " & Err.Description & IIf("." = Right$(Err.Description, 1), "", ".") & vbCrLf

    Exit Function

End Function