Sortiranje podataka u .txt datoteci [C++]

miki208

Domaćin
Poruka
3.826
Da li neko zna kako bih mogao da sortiram podatke u txt fajlu,posto sam napravio jedan kviz i hocu da u jednom txt fajlu skladistim podatke[HIGHSCORE],i to tako da bude sortirano od najvisem ka najmanjem broju bodova kao sto je u ovom primeru.Npr:
highscore.txt
Kod:
Player10 45
Player3 39
Player7 31
Player4 18
 
Poslednja izmena:
pa dakle kad neko zavrzi kviz i ostvari nekakav skor loadujes zadnji tj. najslabiji od HIGHscore-sa i pitas dali je ostvareni broj poena veci od tog....ako jeste ides dalje i pitas isto sve dok ne dobijes da je ostvareni broj poena manji od nekog sa hajskor liste.....kada to uradis samo prepises datoteku: :).....radim sad neki projekat a kad zavrsim postavicu ti resenje ako ti ovo nije dovoljno :D
 
poces ovako
Kod:
player0 0
player0 0
player0 0
player0 0
player0 0
i onda ides
ako je player1 osvojio vise poena od player 0 postavi ga tu
pa o5 radis to sve dok ne naidjes na kraj txt. datoteke ili dok ne naodjes da je neki player iz dateteke osvojio vise poena nego ovaj sad......kontas....citas datoteku sa kraja :D
 
evo ga.....msm da radi sta bi trebalo......testiraj :D :D
Kod:
void PostaviHighscore(string imeP,int PoeniP)
{
     ifstream file("highscore.txt");
     string Niz[6];
     for (int i=0;i<5;i++)
     {
         getline(file,Niz[i]);
     }
     int Poeni[6];
     string myString; 
     for (int i=0;i<5;i++)
     {
         myString=Niz[i].substr(Niz[i].length()-2,2);
         Poeni[i]=atoi(myString.c_str());
         Niz[i].erase(Niz[i].length()-2,2);
     }
     file.close(); 
     int temp=0;  
     string temp1="";
     Poeni[5]=PoeniP;
     Niz[5]=imeP;
     for(int q = 0; q < 5; q++)
     {
         for(int j = q+1; j < 6; j++)
         {
             if(Poeni[q] < Poeni[j])
             {
              temp = Poeni[q];
              Poeni[q] = Poeni[j];
              Poeni[j] = temp;
              temp1=Niz[q];
              Niz[q]=Niz[j];
              Niz[j]=temp1;
             }
         }
     }
ofstream f("highscore.txt");
        for (int i=0;i<6;i++)
        {
            f << Niz[i]<<" "<<Poeni[i];
        }
        f.close();
}

NISAM IMAO KAD da testiram pa ako nesto bude problem mozes sam da prepravis :D
 

Back
Top