VBScript를 사용하여 특정 줄 뒤에 한 파일의 텍스트를 다른 파일에 추가하는 방법은 무엇입니까?

엘슨

텍스트 파일의 내용을 특정 단어가 포함 된 줄 뒤에 다른 기존 텍스트 파일에 삽입해야합니다.

다음은 내 코드입니다.

'//OPEN FILE and READ
Set objFileToRead = fso.OpenTextFile(ActiveDocument.Path & "\file.txt", 1)
strFileText = objFileToRead.ReadAll()
objFileToRead.Close

objStartFolder = ActiveDocument.Path
Set objFolder = fso.GetFolder(objStartFolder)
Set colFiles = objFolder.files

For Each objFile In colFiles
  If fso.GetExtensionName(objFile.Name) = "opf" Then
    filename = objFile.Name
  End If
Next
MsgBox filename

'///PASTE
If fso.FileExists(ActiveDocument.Path & "\" & filename) Then
  MsgBox filename
  Set objFile = fso.OpenTextFile(ActiveDocument.Path & "\" & filename)

  Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine

    If InStr(strLine, "<manifest>") = 1 Then
      MsgBox filename
      objFile.WriteLine vbCrLf & strFileText
      objFile.Close
    End If
  Loop
End If

다음 줄에 잘못된 파일 오류가 발생합니다.

objFile.WriteLine vbCrLf & strFileText

누구든지 무엇이 잘못되었고 무엇을해야하는지 말해 줄 수 있습니까?

Ansgar Wiechers

읽기 위해 열린 파일에는 쓸 수 없습니다.

수정 된 내용을 임시 파일에 쓰고 나중에 원본 파일을이 파일로 바꿉니다.

p = fso.BuildPathActiveDocument.Path, filename)

Set f1 = fso.OpenTextFile(p)
Set f2 = fso.OpenTextFile(p & ".tmp", 2, True)

Do Until f1.AtEndOfStream
  line = f1.ReadLine
  f2.WriteLine line
  If InStr(line, "<manifest>") = 1 Then f2.WriteLine strFileText
Loop

f1.Close
f2.Close

fso.DeleteFile p, True
fso.GetFile(p & ".tmp").Name = filename

또는 수정 된 내용을 원본 파일에 다시 쓰기 전에 전체 내용을 메모리로 읽어옵니다.

p = fso.BuildPathActiveDocument.Path, filename)

txt = Split(fso.OpenTextFile(p).ReadAll, vbNewLine)

Set f = fso.OpenTextFile(p, 2)
For Each line In original
  f.WriteLine line
  If InStr(line, "<manifest>") = 1 Then f.WriteLine strFileText
Next
f.Close

후자는 메모리 고갈로 인해 컴퓨터가 중단되지 않도록 대용량 파일에 사용해서는 안됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관