_Array_Compare2D erweitern

  • Hi zusammen,

    folgende Problematik:

    Ich greife Nagios (Monitoring) Daten ab welche ich in einer Listview abbilde.
    Habe dann eine Updatefunktion welche alle Items die in der Listview sind mit Host|Nachricht in ein 2D Array klatscht.
    im selben moment wird in ein anderes 2 Array mit Host|Nachricht die neuen Nagios Nachrichten geschrieben.

    Jetzt vergleiche ich beide auf unterschiede damit ich die Listview dann leeren kann und neu auffüllen bei unterschieden.
    Klappt alles super, würde nur gerne genau wisssen welche Items neu dazugekommen sind.
    Das gibt die Funktion leider nicht her.

    Bekomme bei einem Unterschied lediglich "-1" und die Anzahl der Elemente:

    Example #2: in case the arrays sizes are different: $a1 size = 3x2 , $a2 size = 1x2
    ; the return array will be:
    ; +---+---+---+
    ; | -1|3x2|1x2|
    ; +---+---+---+

    Jemand eine Idee?

    Danke !


  • ich bin zu blöd irgendwie...

    versuche es grad mit arraysearch

  • Wie wäre es wenn du nen Array erstellst, in das du die jeweiligen indices speichers, die geändert wurden. Dann musst du die nur noch mit SetExtended() oder so mitübergeben. (Um häufiges Redim zu vermeiden kannst du dir am besten einen Wert suchen, z.B. leer, dann musst du am ende nur einmal das array durchgehen, die leeren felder zählen, vom gesamten abziehen, ein neues array mit der länge erstellen und die daten dort eintragen. Redim macht ja auch nichts anderes als das Array neu anzulegen. :))

  • Die Sache ist ich weiß ja leider nicht was sich geändert hat.

    Es können werte dazugekommen sein, dann möchte ich wissen welche.
    Es können werte verschwinden, is mir egal.
    Es können sich werte ändern, möchte ich wissen.

    Bin hier seit stunden am verzweifeln ^^

  • Monitoring-Daten sollten ja einen Zeitstempel oder ein anderes Kriterium haben das sie eindeutig macht. Ohne Eindeutigkeit kannst du dein Problem nie lösen. Auch würde ich dir SQLite zur Auswertung empfehlen.