我有一个VB6程序将文本框中的文本保存到文件中,当你再次打开它时,会出现相同的文本,但每当我重新打开它时,文本框文本现在都有引号,我怎么能删除引号?代码是:
Private Sub Form_Load()
On Error GoTo NoFile
Randomize
Dim sFile As String
Dim Blank As String
Dim c1Path As String
Dim iFileNum As Integer
sFile = "C:\JPLData"
iFileNum = FreeFile
Open sFile For Input As iFileNum
Line Input #iFileNum, c1Path
Close #iFileNum
Text1.Text = c1Path
NoFile:
If Err.Number = 5 Then
sFile = "C:\JPLData"
c1Path = "No Custom Defined."
iFileNum = FreeFile
Open sFile For Output As iFileNum
Write #iFileNum, Text1.Text
Close #iFileNum
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim sFile As String
Dim cName As String
Dim iFileNum As Integer
sFile = "C:\JPLData"
cName = vbClrf & Text1.Text & vbClrf
iFileNum = FreeFile
Open sFile For Output As iFileNum
Write #iFileNum, cName
Close #iFileNum
End Sub
编辑: 我已经回答了我自己的问题, 我拼错了vbCrLf,并且我在fosot中添加了BLsnk变量来处理行情:P
答案 0 :(得分:2)
documentation表示使用Write #
语句编写的数据通常使用Input #
语句读取。
另外:使用Print #
语句写入的数据通常使用Line Input #
语句阅读。
您将Write #
与Line Input #
混合,因此存在不一致。
答案 1 :(得分:0)
[Line] Input
和Write
命令是相当陈旧的语句,仍然保留了许多遗留行为。其中一个可能是添加引号。
这个最简单的修复只是为了在显示文本框时删除引号。所以改变这一行:
Text1.Text = c1Path
到此:
Text1.Text = Replace(c1Path, Chr(34), "")
Chr(34)
是引号字符,Replace
函数只搜索c1Path
字符串中所有Chr(34)
(引号)的实例,并将其替换为空({ {1}},这是空字符串),有效删除它们。
答案 2 :(得分:0)
LINE INPUT
从您的文件中读取整行文本,包括逗号和引号。使用LINE INPUT
,您可以将此类CSV数据样本读入一个字符串变量:
12345,"John Doe","Fake Street",123,"Test Town",900343
整行将成为一个字符串,您必须自己拆分。 LINE INPUT
的“对立”声明为PRINT
。 PRINT
以字符串的形式输出到文件中。该字符串可能包含逗号,引号等。
INPUT
用于从单行读取单独的字段(列值=单元格!)。它期望格式WRITE
产生。所以INPUT
和WRITE
会在一起。使用INPUT
,您可以从文件的单个逗号分隔行中读取多个变量,而无需自行拆分列。您不必使用split
或任何正则表达式的东西。而且,您不必进行任何类型的铸造。 WRITE
和INPUT
只是携手合作。
例如,可以读取逗号分隔的数据行,如下所示:
Dim Id As Integer, FullName As String, Street As String, Income As Double
...
' Write a few separated fields in one operation:
Write #fx, Id, FullName, Street, Income
...
' Read all the fields with different types using just one line of code:
Input #fy, Id, FullName, Street, Income ' Read the cell values straight into your variables
如果你混合两对LINE INPUT
/ PRINT
和INPUT
/ WRITE
,在大多数情况下都无法获得预期效果。
如果您只想保存/恢复单个字符串(无论逗号,......它可能包含)并且没有多个字段(特别是使用不同的数据类型(Integer,String,...)),请转到适用于LINE INPUT
和PRINT
。那些不包括任何字段分离处理。整个行的正常工作由vbCrLf
分隔。如果您使用PRINT
,则无需编写任何其他vbCrLf
个字符,因为PRINT
会自动包含一个换行符。 (如果您不想在结尾处使用换行符,请在语句行的末尾添加;
。)
' Save a single String
Dim ff As Integer, MyString As String
ff = FreeFile
MyString = "Hello World!"
Open "myfile.txt" For Output As #ff
Print #ff, MyString 'Just write the String without any additional characters.
Close #ff
' ... Later restore the entire line into one String:
Dim RestoredString As String
ff = FreeFile
Open "myfile.txt" For Input As #ff
Line Input #ff, RestoredString
Close #ff
答案 3 :(得分:0)
要在写入文件时删除字符串引号,请使用Print而不是Write。
Dim ff As Integer, MyString As String
ff = FreeFile
TheString= "test"
Open "myfile.txt" For Output As #ff
Print #ff, TheString
Close #ff