2014-04-01 6 views
0

필자는 파일 입력 문제로 인해 두뇌의 문제를 겪었습니다. 마침내 두 가지 문제가 발생했습니다. "파일 끝을 읽으십시오"라는 오류 62를 지나칠 수는 있지만, 과거.EXCEL VBA 쓰기 - 파일 읽기 - BUG?

내가 잘못했거나 확인했는지 누군가가 알 수 있습니까?

는 기본적으로 (이) 코드 #

?xml version="1.0"? 
A Second Line 

1 부 (쓰기 파일)에서 디버그 문이 2 부에

?xml version="1.0"? 
A Second Line 

디버그 문으로 텍스트를 인쇄 두 줄의 기록 (읽기 파일)은 텍스트를

으로 인쇄합니다.
ÿþ?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

읽기 결과는 ** 유니 코드 ** 텍스트 파일 때문이었습니다. VBA가 읽는 특수 마커가 있습니다. – PatricK

답변

0

그냥 빨리 샷 : 일반적으로, XML-파일은 UTF8 인코딩을 사용합니다. 그러나 FileSystemObject은 UTF8을 처리 할 수 ​​없습니다. ADODB.Stream 개체를 사용하여 VBA에서 UTF8 파일을 읽고 쓸 수 있습니다. 웹에서 예제를 찾을 수 있습니다.

+0

Sean, ADO 스트림을 사용하기위한 참조가되어야합니다. http://msdn.microsoft.com/en-us/library/windows/desktop/ms677486(v=vs.85).aspx) – PatricK