Daten sortieren (im Speicher?)



  • Hi,
    ich muss einige Datensätze sortieren und bräuchte euren Rat, wie ich das
    am besten anstelle ohne großen Aufwand davon zu betreiben.

    Ich habe eine Datei, in der je Zeile ein Datensatz steht. Etwa so:

    Max Muster;Hansen Weg 17;040/12345;Nordhausen;
    Fabian Müller;Baumweg 6a;030/321540909;Lummerland;
    Peter Lustig;Dummyhof 19;0040/12345;Klein Hafenland;
    Jochen Müller;Rutumweg 61;030/321540909;Klein Lummerland;
    Jens Lebig;Kimmyhof 192c;040/12345;Groß Italien;

    Der Datenbestand ist ca 100 MB groß und wird noch größer...
    Nun muss ich alle identischen Einträge nach deren Rufnummer
    sortieren. Aber wie stelle ich es am besten an?
    Ich muss das irgendwie im Speicher sammeln

    Am Ende muss ich sogar alle Datensätze einer Gruppe wieder hintereinander
    verketten um diesen Teilstring dann weiter zu verwenden und schlußendlich
    in meine Ausgabedatei zu packen 😞



  • Spontan würd ichs in eine SQL Datenbank (sqlite wär wohl ideal) hauen.



  • Ich muss leider die CSV-Datei mir einer einfachen MFC-Anwendung ohne jegliche Datenbank zerstückeln.



  • Yogi schrieb:

    Ich muss leider die CSV-Datei mir einer einfachen MFC-Anwendung ohne jegliche Datenbank zerstückeln.

    Nurmal so hingeschrieben, ich denke an sowas ähnliches.

    struct Person{
      string name;
      string strasse;
      string telefonnummer;
      string ort;
    };
    bool kleinereName(Person const& a,Person const& b){
      return a.name<b.name;
    }
    void machmal(){
      ifstream in("c:/datei.csv");
      Person p;
      vector<Person> v;
      while(getline(in,p.name,';')
        &&getline(in,p.strasse,';')
        &&getline(in,p.telefonnummer,';')
        &&getline(in,p.ort,';'))
        v.push_back(p);
      sort(v.begin(),v.end(),kleinereName);
      for(...
         ausgabe
    }
    

Anmelden zum Antworten