0

我已经在富文本框中显示了文本文件。并且 onclick onclick on command button value of textbox1 正在文本文件中被替换。

但是如何保留这两个数据。在文本框中新输入的前一个和另一个

我已使用此代码,但它替换了所有文本:

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

2 回答 2

4

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

于 2013-10-24T16:46:34.810 回答
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
于 2013-10-27T06:24:12.233 回答