我一直在用文件输入问题绞尽脑汁,我终于把它归结为两个问题,我可以通过错误62,“读过去的文件结束”,但这个我不能过去了。
有人可以告诉我,如果我做错了/验证吗?
基本上(这个)代码写了两行#
?xml version="1.0"?
A Second Line
第1部分(写入文件)中的调试语句将文本打印为
?xml version="1.0"?
A Second Line
第2部分(读取文件)中的调试语句将文本打印为
ÿþ?xml version="1.0"?
A Second Line
如您所见,输入或添加了两个额外的字符 文件开头的输出流。
为了完整性添加了第二行,以便更详细地显示它只是第一行被拧紧。
当我查看记事本时,没有什么额外的,这些额外内容来自何处/何处?
任何想法,提前谢谢, 问候 肖恩
Sub writeXMLTest()
'Part 1 - Write the file
Dim FSO As Object
Dim NewFile As Object
Dim FullPath As String
Dim XMLFileText As String
FullPath = "E:\TESTFILE.xml"
'On Error GoTo Err:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set NewFile = FSO.CreateTextFile(FullPath, 1, 1)
XMLFileText = ""
XMLFileText = XMLFileText & "?xml version=" & Chr(34) & "1.0" & Chr(34) & "?" & vbNewLine
NewFile.Write (XMLFileText)
Debug.Print XMLFileText
XMLFileText = XMLFileText & "A Second Line" & vbNewLine
NewFile.Write (XMLFileText)
Debug.Print XMLFileText
NewFile.Close
'Part 1 - Complete
'Part 2 - Now to read the file
Dim FileNum As Integer, i As Integer
Dim s As String
' fpath = Application.GetOpenFilename
FileNum = FreeFile()
Open FullPath For Input As #FileNum
i = 1
While Not EOF(FileNum)
Line Input #FileNum, s ' read in data 1 line at a time
Debug.Print s
Wend
End Sub
答案 0 :(得分:0)
快速拍摄:通常,xml文件使用UTF8编码。但FileSystemObject
无法处理UTF8。您可以使用ADODB.Stream
对象执行此操作(在VBA中读取和写入UTF8文件) - 您可以在网络上找到示例。