我在richtextbox中显示了文本文件。 并且onclick on textbox1的命令按钮值正在文本文件中替换。
但如何保留两个数据。上一个和另一个在文本框中输入新内容
我已经使用了这个代码,但它取代了所有文字:
Open "D:\chat.txt" For Output As #1
a = Text1.Text
Print #1, a
Close #1
答案 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