Delta Daten Verarbeitung



  • Hallo,

    hat einer eine Idee, wie ich eine Deltadatenverarbeitung in einem C++-Programm realisieren kann?
    Mit Deltadaten meine ich, dass ich zwei Datenquellen habe. Die erste Datenquelle ist eine Stringarray, wo ich verschiedene Namen in Form von Strings gespeichert habe, die zweite Datenquelle gibt auch jeweils immer einen String zurück. Jetzt möchte ich diese miteinander vergleichen.

    Kommt der Name aus der zweiten Datenquelle in der ersten vor, dann möchte ich diese in meine "imaginäre" Spalte "unverändert" verschieben;
    Kommt der Name aus der zweiten in der ersten nicht vor, möchte ich den in die Spalte "neu" haben;
    Sind Namen in der ersten vorhanden, die ich nicht mehr aus der zweiten Datenquelle erhalten habe, möchte ich diese in die Spalte "Alt" verschieben...

    ...ich hoffe, das war etwas verständlich 🙂

    Gruss,

    chullain



  • öhm, ich versteh dein Problem jetzt nicht wirklich

    std::map<std::string,std::vector<std::string> >
      delta(const std::vector<std::string> &quelle1,
            const std::vector<std::string> &quelle2) {
      std::map<std::string,std::vector<std::string> > spalte;
      for(std::vector<std::string>::const_iterator i=quelle2.begin();
          i!=quelle2.end();
          ++i)
      {
         if(std::find(quelle1.begin(),quelle1.end(),*i)!=quelle1.end())
           spalte["unverändert"].push_back(*i);
         else
           spalte["neu"].push_back(*i);
      }
      for(std::vector<std::string>::const_iterator i=quelle1.begin();
          i!=quelle1.end();
          ++i)
         if(std::find(quelle2.begin(),quelle2.end(),*i)!=quelle2.end())
           spalte["alt"].push_back(*i);
      return spalte;
    }
    

    *achtung: ungetestet :)*



  • danke schon mal...
    ...ich versuche das etwas einfacher auszudrücken...

    ich habe zwei Stringarrays, in denen verschiedene Strings drin stehen, diese möchte ich miteinander vergleichen, wenn jetzt ein String in beiden Arrays vorkommt, möchte ich diesen in z.B. Array "unverändert" verschieben, wenn ein wert aus dem ersten Array nicht in dem zweiten auftaucht, dann in den Array "Alt", und wenn ein Wert in dem zweiten Array nicht in dem ersten auftaucht, dann in den Array "Neu"...

    Gruss,

    chullain



  • das ist doch ungefähr das was der Code macht. Wo ist jetzt das Problem?


Anmelden zum Antworten