Thema: Delphi Textdatei sortieren

Einzelnen Beitrag anzeigen

boozzz

Registriert seit: 14. Feb 2005
13 Beiträge
 
#1

Textdatei sortieren

  Alt 6. Mär 2006, 13:37
Hi zusammen,
mein Quellcode soll verschiedene Werte einer Textdatei einlesen und sortieren. Die sortierten Werte sollen in einer Highscore-Liste angezeigt werden.

In der Textdatei stehen abwechselnd Wert und Benutzer in einer Zeile. Beispiel: In der ersten Zeile steht die Punktzahl von Benutzer 1. Der Name von Benutzer 1 seht in der zweiten Zeile. In der dritten Zeile steht die Punktzahl von Benutzer 2. Der Name von Benutzer 2 seht in der vierten Zeile, usw.

Das Problem: Es werden nur die ersten 10 Werte in der Textdatei sortiert. Der 11. Benutzer wird nicht mehr in der Sortierung berücksichtigt.

Würde mich freuen, wenn sich das jemand mal anschauen könnte, DANKE.

Delphi-Quellcode:
procedure TForm1.bestenlistebuttonClick(Sender: TObject);    
var ende,zwischenspeicher,lauefer,lauefer2,x,y,wertespeicher,wabbel:integer;    
    personenspeicher: string;    
    platz: array[1..100] of integer;    
    person: array[1..100] of string;    
begin    
  bestenliste.Show;    

  highscore:=TStringList.Create;    
  if FileExists ('memory.txt') then    
  begin    
    highscore.LoadFromFile('memory.txt');    
    ende:=highscore.Count;    

    lauefer:=0;    
    lauefer2:=1;    

    for x:=1 to 10 do    
    begin    
      if (highscore.Count/2>=x) then    
      begin    
        platz[x]:=StrToInt(highscore[lauefer]);    
        lauefer:=lauefer+2;    
        person[x]:=highscore[lauefer2];    
        lauefer2:=lauefer2+2;    
      end;    
    end;    

    for y:=1 to 10 do    
    begin    
      for x:=1 to 10 do    
      begin    
        if (highscore.Count/2>=x) then    
        begin    
          if platz[x+1]<platz[x] then    
          begin    
            wertespeicher:=platz[x];    
            personenspeicher:=person[x];    
            platz[x]:=platz[x+1];    
            person[x]:=person[x+1];    
            platz[x+1]:=wertespeicher;    
            person[x+1]:=personenspeicher;    
          end;    
        end;    
      end;    
    end;    

    bestenliste.Label1.Caption:=IntToStr(platz[2]);     //hier folgt die Ausgabe in die einzelnen Labels
    bestenliste.Label2.Caption:=IntToStr(platz[3]);    
    bestenliste.Label3.Caption:=IntToStr(platz[4]);    
    bestenliste.Label4.Caption:=IntToStr(platz[5]);    
    bestenliste.Label5.Caption:=IntToStr(platz[6]);    
    bestenliste.Label6.Caption:=IntToStr(platz[7]);    
    bestenliste.Label7.Caption:=IntToStr(platz[8]);    
    bestenliste.Label8.Caption:=IntToStr(platz[9]);    
    bestenliste.Label9.Caption:=IntToStr(platz[10]);    

    bestenliste.Label39.Caption:=person[2];    
    bestenliste.Label38.Caption:=person[3];    
    bestenliste.Label37.Caption:=person[4];    
    bestenliste.Label36.Caption:=person[5];    
    bestenliste.Label35.Caption:=person[6];    
    bestenliste.Label34.Caption:=person[7];    
    bestenliste.Label33.Caption:=person[8];    
    bestenliste.Label32.Caption:=person[9];    
    bestenliste.Label31.Caption:=person[10];    

    highscore.Free;    
  end;    
end;
  Mit Zitat antworten Zitat