我已经在富文本框中显示了文本文件。并且 onclick onclick on command button value of textbox1 正在文本文件中被替换。
但是如何保留这两个数据。在文本框中新输入的前一个和另一个
我已使用此代码,但它替换了所有文本:
Open "D:\chat.txt" For Output As #1
a = Text1.Text
Print #1, a
Close #1
我已经在富文本框中显示了文本文件。并且 onclick onclick on command button value of textbox1 正在文本文件中被替换。
但是如何保留这两个数据。在文本框中新输入的前一个和另一个
我已使用此代码,但它替换了所有文本:
Open "D:\chat.txt" For Output As #1
a = Text1.Text
Print #1, a
Close #1
更改For Output
为For Append
,它会将新文本添加到文件末尾而不是覆盖它。
由于我无法对 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