2013-04-21 2 views
0

두 개의 텍스트 파일을 비교하고 두 번째 파일의 줄을 처음으로 추가하는 솔루션을 찾고 있습니다. 다음은 그 예입니다.VB.NET은 두 개의 텍스트 파일을 비교하고 불충분 한 줄을 추가합니다.

먼저 파일 내용 :

<category = Names> 
Anton 
Darell 
Kate 
</category> 
<category = Job title> 
Director 
President 
Manager 
</category> 
<category = other> 
bla bla 
lia lia 
ohoho 
</category> 

두 번째 파일 내용 :

당신이 모든 파일을 발견 한 경우
<category = Names> 
Anton 
Frank 
Thomas 
</category> 
<category = Job title> 
Driver 
President 
Manager 
</category> 
<category = other> 
bla bla 
olia olia olia 
</category> 

카테고리의 몇 가지 유형이있다, 그래서으로 두 번째 파일에서 새 개체를 추가 할 첫 번째 파일에서 동일한 카테고리를 사용하면 새 파일 형식이 다음과 같이 표시됩니다.

<category = Names> 
Anton 
Darell 
Kate 
Frank 
Thomas 
</category> 
<category = Job title> 
Director 
President 
Manager 
Driver 
</category> 
<category = other> 
bla bla 
lia lia 
ohoho 
olia olia olia 
</category> 

희망 사항 해결할 수 있습니다.

+0

기본적으로 병합을 수행하는 diff (비교) 도구를 작성 하시겠습니까? 이미 당신을 위해 이것을 할 소프트웨어가 있습니다 (BeyondCompare는 우리가 내 작품에서 사용하는 소프트웨어이지만 다른 것들도 있습니다). – Tim

+3

이것은 쉽게 할 수 있어야합니다. 이미 시도한 것을 우리에게 보여 주면 그것을 완성하는 방법을 보여줄 수 있어야합니다. – RBarryYoung

+0

함수 분할을 사용하려고 생각했기 때문에 모든 범주를 두 파일로 분리하여 비교 한 다음 불충분 한 선을 추가하고 모든 범주를 하나의 파일로 다시 작성할 수있었습니다. VB에서 초보자입니다. 이것이 이것이 가능한 이유입니다. :) – Chelovek

답변

0
Private mResult As New List(Of String) 

Public Sub MergeFiles() 
    ReadFile("C:\File1.txt") 
    ReadFile("C:\File2.txt") 
    WriteFile("C:\Result.txt") 
    mResult.Clear() 
End Sub 

Private Sub ReadFile(ByVal Path As String) 
    Dim mSR As New System.IO.StreamReader(Path) 
    Dim mItem As String = "" 
    Do While Not mSR.EndOfStream 
     mItem = mSR.ReadLine 
     If Not mResult.Contains(mItem) Then mResult.Add(mItem) 
    Loop 
    mSR.Close() 
    mSR.Dispose() 
End Sub 

Public Sub WriteFile(ByVal Path As String) 
    Dim mSW As New System.IO.StreamWriter(Path) 
    For Each mItem As String In mResult 
     mSW.WriteLine(mItem) 
    Next 
    mSW.Close() 
    mSW.Dispose() 
End Sub 
+0

답변 주셔서 감사합니다. 그러나 작동하지 않습니다. 그것은 Result.txt 파일조차 만들지 않습니다. 나는 무엇이 문제인지 확실하지 않다. – Chelovek

+0

위의 코드에서 오류가 발생합니까? 언제, 어떤 행에서 오류가 발생합니까? 또는 deos ist 실행 및 파일을 만들 수 없습니다? – poi

관련 문제