# Textdateien vergleichen



## fenerlisivas (4. Februar 2010)

Hallo zusammen

Ich habe zwei Textdateien, bei welchen ich den inhalt vergleichen muss und die Unterschiede in einem dritten textfile speichern soll.
kann mir da jemand helfen? 

Gruss FeNeR


----------



## Yaslaw (4. Februar 2010)

Verwende ein Compare-Programm
http://www.google.ch/#hl=de&source=...che&meta=&aq=3&oq=compare&fp=f16d4f46ca6b6eb2

Wenns mit VB6 sein muss
http://www.google.ch/#hl=de&q=compa...q=compare+files+mit+"VB6"&fp=f16d4f46ca6b6eb2


----------



## fenerlisivas (4. Februar 2010)

Diese beide habe ich schon mal angeschaut. leider helfen die links mir nicht weiter.
Hast du sonst welche guten Code seiten?


----------



## Yaslaw (4. Februar 2010)

Ich müsste googeln....

item: Muss es in VB6 integriert werden als Bestandteil eines komplexeren Programms oder wie?
item: Wie sollen die Differenzen dargestellt werden? Recihen die Zeilennummenr in denen die Differenzen sind? Oder was wie wo?


----------



## fenerlisivas (4. Februar 2010)

ja in VB6 aber es muss nicht in einem komplexeren Programm integriert werden. ist ein kleineres programm, und das ist ein Teil dieses Programmes welches mit dem Programm eigentlich nicht viel zu tun. 

Ich habe zwei textfiles welche ich vergleichen muss. Die Differenzen sollten entweder in einem MsgBox oder in einem dritten Textfile gespeichert werden soll.
Die Zeile in dem der Fehler liegt würde als ausgabe reichen.


----------



## Yaslaw (4. Februar 2010)

Ist doch einfach. Beide Dateien öffnen, Zeile um Zeil durchloopen und vergleichen.
Findest du mit Goggle innerhalb 10 Sekunden.

Hier mein Beispiel (wie du das FileSystemObject ins VB/VBA kriegst darfst du selber herausfinden - keine Angst, ist sehr einfach)

```
Public Sub testCompare()
    Dim fso As New FileSystemObject
    Dim stream1 As TextStream
    Dim stream2 As TextStream
On Error GoTo Err_Handler
    
    ' Beide Dateien als Stream öffnen
    Set stream1 = fso.OpenTextFile("C:\temp\c1.txt")
    Set stream2 = fso.OpenTextFile("C:\temp\c2.txt")

    ' Beide Dateien durchloopen
    Do While Not stream1.AtEndOfStream And Not stream2.AtEndOfStream
        If Not stream1.ReadLine = stream2.ReadLine Then
            MsgBox stream1.Line
        End If
    Loop
    
' Am ende sauber aufräumen
Exit_Handler:
On Error Resume Next
    stream1.Close
    stream2.Close
    Set stream1 = Nothing
    Set stream2 = Nothing
    Set fso = Nothing
    Exit Sub
    
Err_Handler:
    MsgBox Err.Description
    GoSub Exit_Handler
End Sub
```


----------



## fenerlisivas (4. Februar 2010)

BOAH, BIST MEINE RETTUNG...


Danke... das hat mir weitergeholfen... 

FileSystemObject problem habe ich schon im griff... somit gelöst, danke dir vielmal...


----------



## Yaslaw (4. Februar 2010)

Perfekt währe anders. Dieser Vergleich fällt auf die Schnauze sobald Zeilen Verschoben werden.
Er funktioniert also nur bei gleich vielen Zeilen und gleicher Reihenfolge der Zeilen.


----------



## fenerlisivas (4. Februar 2010)

nööö, bei mir sind die textfiles ziemlich identisch... zeilenanzahl bleibt immer gleich...deshalb bin ich ziemlich zufrieden, und falls es nötig wäre dies zu erweitern das es keine fehlermeldung gibt, würde ich diese "KLEINIGKEIT" noch erledigen


----------

