Announcement

Collapse
No announcement yet.

2 Listviews vergleichen/doppelte Einträge in einer Spalte entfernen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2 Listviews vergleichen/doppelte Einträge in einer Spalte entfernen

    Hallo zusammen.
    Ich habe für eine Versionsverwaltung 2 Listviews. Beide werden aus verschiedenen csv gefüllt und sind jeweils 2-spaltig. Eine Listview enthält die derzeitigen Files auf dem Zielsystem mit Dateiname und Version, jeweils nur einmal vorkommend. In der anderen Listview stehen alle verfügbaren Dateien, sprich der Dateiname kann mehrfach vorkommen, in der 2 Spalte steht aber jeweils eine andere Version.
    Beispiel:
    Listview 1:
    aaa.exe | 1.00
    bbb.exe | 1.2
    ccc.exe | 3.7

    Listview 2:
    aaa.exe | 1.00
    aaa.exe | 1.2
    aaa.exe | 3.7
    bbb.exe | 2.5

    usw.

    Ziel ist es, in Listview 2 nur den jeweiligen Dateinamen mit der höchsten Versionsnummer aufzuführen und dann einen Vergleich von Listview 1 und Listview 2 durchzuführen, wobei in Listview 1 alle Zeilen markiert werden sollen, wo die entsprechende Version der Datei niedriger ist als die korrespondierende Datei-Version in Listview 2.
    Leider habe iche gerade mal garkeinen Lösungsansatz. Hat jemand irgend eine Idee, wie das am einfachsen zu realisieren ist?

  • #2
    Ein dictionary hält immer einen Key und ein Value. Also eines aufbauen, welches Dateinamen und Version hält als Key/Value. Nun wird das Dictionary mit den Daten der Listview2 gefüllt. Nur einfach Dateiname als Key und Version als Value hinzufügen. Da es den Key nur einmal geben darf steht an Schluß der Dateiname mit der höchsten Version drin (jedenfalls wenn die Datein beim einfügen sortiert waren; sind sie es nicht, muss vor dem einfügen die Versionsnummer verglichen werden).

    Dann kannst du das Dictionary mit der Listview1 vergleichen
    Christian

    Comment


    • #3
      Standardantwort wenn ich sowas lese.

      Du hast ein Problem bei der Datenaufereitung. Keins bei der Anzeige also halte das Listview aus deinen Überlegungen raus. Dieses von der ~UI denken~ verbaut dir nur den Weg zu einer sinnvollen Lösung.
      Wenn du die verschiedenen Versionen nicht brauchst sondern nur die höchste wieso liest du dann schon alles aus der CSV? Lass doch alles beim auslesen der CSV Weg was du nicht brauchst und und schreib die Daten dann in eine Datenstruktur die die Operationen die du benötigst unterstützt. Ein Dictionary könnte schon der richtige Hinweis sein.

      Comment


      • #4
        Vielen Dank! Ich filtere jetzt beim Einlesen alles raus und nehme nur noch den Eintrag mit der höchsten Versionsnummer. Klappt!!!

        Comment

        Working...
        X