Mit TStringList und Sorted nach Zahlen sortieren



  • hallo,

    ich möchte eine highscore in eine textdatei schreiben, kriege das mit dem sortieren aber nicht ganz hin.
    ich habe es mit folgendem code versucht:

    TStringList *high = new TStringList();
     high->Sorted=true;
     high->LoadFromFile("Highscore.txt");
     high->Add(IntToStr(ges_btr) + " : " + name);
     high->SaveToFile("Highscore.txt");
     AnsiString gesamt;
     int end=high->Count;
     AnsiString einzel;
     for (int i=0;i<=end-1;i++)
      { einzel=high->Strings[i];
        gesamt+=einzel + "\n";}
     gesamt="Highscore!\n=========\n\n" + gesamt;
     Application->MessageBoxA(gesamt.c_str(),"Glücksrad",0);
     high->SaveToFile("Highscore.txt");
     }
    

    die MessageBoxA gibt es zwar schön aus, aber nicht sortiert, die Highscore.txt sieht folgendermapeßen aus, und so sieht auch die MessageBoxA aus.

    0 : armin
    1200 : Any
    1800 : Armin
    400 : armin
    500 : sdfasfd
    6000 : Armin
    

    thx
    BigBanana



  • Ist doch korrekt sortiert 😉

    Für eine eigene Methode (hier nummerisch) gibt es TStringList::CustomSort dort wird der Funktion zwei Werte aus der Liste übergeben. Die Funktion muss dann nur noch entscheiden, welcher zuerst kommt.



  • Siehe auch den entsprechenden FAQ-Beitrag zu CustomSort.



  • ok, ich habs mit CustomSort probiert, aber sortiert ist es immer noch nicht richtig. der neue eintrag kommt jetzt irgendow in die mitte hin!

    plz help!

    BigBanana



  • Hallo

    Wie sollen wir dir helfen, wenn du deinen entsprechenden Codeausschnitt nicht postest?

    bis bald
    akari


Anmelden zum Antworten