Inhalt von 2 Dateien zusammen führen, nach Duplikaten suchen und löschen

  • Hallo,

    ich habe 2 csv-Dateien, diese würde ich gerne zusammenführen und danach doppelte einträge löschen. Hier kann es aber sein, dass nur die erste Spalte einer Zeile den selben Wert enthält, trotzdem soll dann die ganze Zeile gelöscht werden.

    Beispiel:

    Die erste Datei enthält:

    AAA;123;456;
    BBB;789;012;

    Die zweite Datei enthält:

    CCC;345;678;
    AAA;901;234;

    Zusammgeführt sollte es dann so aussehen:

    AAA;123;456;
    BBB;789;012;
    CCC;345;678;
    AAA;901;234;

    und dann sollte nach doppelten Werten in der ersten Spalte gesucht werden und dann die entsprechende Zeile gelöscht werden:

    BBB;789;012;
    CCC;345;678;

    Ich hatte hier so an _FileReadToArray gedacht. Es handelt sich aber um ca. 35000 Datensätze.

    Hat jemand sowas vielleicht schonmal gemacht und könnte ein Beispiel-Script posten?

    Vielen Dank.

    Einmal editiert, zuletzt von Bit-Service (2. Juni 2014 um 00:39)

  • Hat jemand sowas vielleicht schonmal gemacht und könnte ein Beispiel-Script posten?

    Du bist hier in H&U. Hier werden Fragen diskutiert, die beim Programmieren entstehen. Wenn du fertige Skripte geliefert haben willst, dann poste in der Jobbörse.

  • [autoit]

    #include <file.au3>
    $aData=_FileReadToArray(FileOpenDialog("",@DesktopDir,"All (*.*)"))
    local $gesData[UBound($aData)][3]
    for $i=0 to UBound($aData)-1 step 1
    $ar=StringSplit($aData[$i],";")
    $gesData[$i][0]=$ar[1]
    $gesData[$i][1]=$ar[2]
    $gesData[$i][2]=$ar[3]
    next
    ;jetzt hast du alle einträge in einem 2dimensionalen array :)
    ;Dann sieh dir mal _ArrayUnique() an
    ;oder bau es dir selbst nach dem prinzip, für jeden arrayeintrag einmal das array durchlaufen,... ;)

    [/autoit]


    Viel Spaß beim weitermachen :)