2 Textdateien miteinander vergleichen und Unterschiede ausgeben

  • VBScript

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von hanimausi.

    2 Textdateien miteinander vergleichen und Unterschiede ausgeben

    Hallo,

    ich habe 3 Textdateien z.B.:

    datei1.txt mit folgendem Inhalt:

    L1
    L2
    L3
    L4
    L5
    L6
    L7

    datei2.txt mit folgendem Inhalt:
    L1
    L3
    L5



    Nun brauche ich als Ergebnis -per VBS- folgende Zeilen in der dritten Textdatei ausgegeben:
    textdatei3.txt:
    L2
    L4
    L6
    L7


    Die dritte Textdatei soll also alle Zeilen enthalten, welche die zweite Textdatei nicht enthält, jedoch aber die erste Textdatei enthält.

    Ich habe einige Stunden damit verbracht, es zu lösen, konnte es jedoch nicht schaffen. :/


    Über Hilfe würde ich mich freuen.
    wenn die Reihenfolge nicht relevant ist könnte man den einfachen Ansatz verfolgen beide Listen zu sortieren, dann wären alle Elemente ab den ersten beiden ungleichen Elementen in nur einer von beiden Dateien.
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Was hast Du denn bisher?

    Wenn immer in der zweiten Datei was fehlt, dann würde ich die erste in Arrays einlesen. Dann die zweite durchgehen und jede Zeile im Array suchen. Ist diese vorhanden dann aus dem Array entfernen.

    Das kann bei großen Dateien etwas dauern. Sind die Daten in beiden Dateien wie in Deinem Beispiel alphabetisch sortiert, lässt es sich schneller lösen.
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Eierlein schrieb:

    datei1.txt mit folgendem Inhalt:

    L1
    L2
    L3


    Das ist der 'echte' Inhalt?


    Hallo, nein es ist nicht der richtige Inhalt, jedoch spielt es keine Rolle.

    Der richtige Inhalt enthält eine Liste mit Namen, die so ähnlich aufgebaut sind.

    In der zweiten Liste haben diese Namen einen Update erhalten.

    Nun muss ich in der dritten Liste wissen, welche Namen noch Updates erhalten müssen.
    Liste 3 soll also alle Namen enthälten, die Liste 2 nicht enthält aber Liste 1 enthält.

    Kann mir jemand helfen?
    LG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „hanimausi“ ()

    nein es ist nicht der richtige Inhalt, jedoch spielt es keine Rolle.


    Wenn du meinst.
    Folgendes Programm funktioniert auf jeden Fall mit deinem Beispiel:

    Visual Basic-Quellcode

    1. Dim FSO, Datei1, Datei2, Datei3, tmp1, tmp2
    2. Set FSO = CreateObject("Scripting.FileSystemObject")
    3. Set Datei1 = FSO.OpenTextFile("d:\##\datei1.txt", 1)
    4. Set Datei2 = FSO.OpenTextFile("d:\##\datei2.txt", 1)
    5. Set Datei3 = FSO.OpenTextFile("d:\##\datei3.txt", 2,True)
    6. tmp2 = Datei2.readall
    7. Do Until Datei1.AtEndOfStream
    8.     tmp1 = Datei1.readline
    9.     If InStr(tmp2, Trim(tmp1)) = 0 Then
    10.         Datei3.WriteLine(tmp1)
    11.     End If
    12. Loop
    13. Datei1.Close
    14. Datei2.Close
    15. Datei3.Close
    16. MsgBox("Fertig")