2016-10-17 3 views
0

그래서 특정 텍스트가 포함 된 특정 줄에 대해서만 큰 텍스트 파일을 처리하려고합니다. 전체 줄을 새 텍스트 파일에 쓰고 싶습니다. 이것은 내가 생각해 낸 것이지만, taget 텍스트 파일을 완전히 비 웁니다. 그리고 "Input past of end of file"오류를줍니다.텍스트 파일을 읽고 특정 텍스트가있는 ONLY 줄을 작성하십시오.

Set objFS = CreateObject("Scripting.FileSystemObject") 
strFile = "C:\Users\Choti\Desktop\collect\collect.L" 
strTemp = "C:\Users\Choti\Desktop\collect\temp.txt" 
Set objFile = objFS.GetFile(strFile) 
Set objOutFile = objFS.CreateTextFile(strTemp,True) 
Set ts = objFile.OpenAsTextStream(1,-2) 
Do Until ts.AtEndOfStream = false 
    strLine = ts.ReadLine 
    ' do something with strLine 
    if strLine like "tagId" Then 
    objOutFile.Write(strLine) 
    end if 
    ts.AtEndOfStream = false 
Loop 
objOutFile.Close 
ts.Close 
objFS.DeleteFile(strFile) 
objFS.MoveFile strTemp,strFile 

미리 감사드립니다.

UPDATE : 작업 코드

Set objFS = CreateObject("Scripting.FileSystemObject") 

strFile = "C:\Users\Choti\Desktop\collect\collect.L" 
strTemp = "C:\Users\Choti\Desktop\collect\temp.txt" 

Set objFile = objFS.GetFile(strFile) 
Set objOutFile = objFS.CreateTextFile(strTemp,True) 
Set ts = objFile.OpenAsTextStream(1,-2) 

Do While Not ts.AtEndOfStream 
    strLine = ts.ReadLine 


    if Instr(1, strLine, "tagId") > 0 Then 
     objOutFile.WriteLine strLine 

    end if 


Loop 
objOutFile.Close 
ts.Close 
+0

당신은 선 *이 * "tagId"가 포함되어 있는지 확인하지 않는,하지만 라인은 "tagId을"동일 대신 여부. 문자열이 다른 문자열에 포함되어 있는지 확인하려면'Instr()'또는'Like'를 사용하십시오. 카운트/카운터로 무엇을하고 있습니까? –

+0

방금 ​​그 사실을 깨닫고 그것을 업데이트했지만, 이제는 파일 끝 부분에 Input을 가져 왔습니다. – duckfeet23

+0

이 VBA 또는 VBScript입니까? 하나에는'Like' 연산자가 있고, 다른 연산자에는 없습니다. –

답변

1
Set objFS = CreateObject("Scripting.FileSystemObject") 

strFile = "C:\Users\Choti\Desktop\collect\collect.L" 
strTemp = "C:\Users\Choti\Desktop\collect\temp.txt" 

Set objFile = objFS.GetFile(strFile) 
Set objOutFile = objFS.CreateTextFile(strTemp,True) 

Set ts = objFile.OpenAsTextStream(1,-2) 

Do While Not ts.AtEndOfStream 

    strLine = ts.ReadLine 
    ' do something with strLine 
    'if Instr(1, strLine, "tagId") > 0 'vbscript/VBA 
    if strLine Like "*tagId*" Then  'VBA 
     objOutFile.WriteLine strLine 
    end if 

Loop 

objOutFile.Close 
ts.Close 

objFS.DeleteFile strFile 
objFS.MoveFile strTemp,strFile 
+0

고마워요,하지만 받고 있습니다 – duckfeet23

+0

오류 : 줄 15에 하위 또는 함수가 정의되지 않았습니다. Char 5 – duckfeet23

+0

그 줄은 무엇입니까? 디버그를 클릭하면 어떤 행이 강조 표시됩니까? –

관련 문제