每当您打开应用程序时,VB6引号都会出现

时间:2013-10-06 17:40:32

标签: vb6

我有一个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

4 个答案:

答案 0 :(得分:2)

documentation表示使用Write #语句编写的数据通常使用Input #语句读取。

另外:使用Print #语句写入的数据通常使用Line Input #语句阅读。

您将Write #Line Input #混合,因此存在不一致。

答案 1 :(得分:0)

[Line] InputWrite命令是相当陈旧的语句,仍然保留了许多遗留行为。其中一个可能是添加引号。

这个最简单的修复只是为了在显示文本框时删除引号。所以改变这一行:

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的“对立”声明为PRINTPRINT以字符串的形式输出到文件中。该字符串可能包含逗号,引号等。

INPUT用于从单行读取单独的字段(列值=单元格!)。它期望格式WRITE产生。所以INPUTWRITE会在一起。使用INPUT,您可以从文件的单个逗号分隔行中读取多个变量,而无需自行拆分列。您不必使用split或任何正则表达式的东西。而且,您不必进行任何类型的铸造。 WRITEINPUT只是携手合作。

例如,可以读取逗号分隔的数据行,如下所示:

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 / PRINTINPUT / WRITE,在大多数情况下都无法获得预期效果。

如果您只想保存/恢复单个字符串(无论逗号,......它可能包含)并且没有多个字段(特别是使用不同的数据类型(Integer,String,...)),请转到适用于LINE INPUTPRINT。那些不包括任何字段分离处理。整个行的正常工作由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