Sortowanie w pliku txt [pascal]

0

Witam!
Mam pewien problem.
Mianowicie stworzyłem program generujący statystyki
żużlowe, ale nie umiem zrobić tak, aby program w plikach
sortował dane. Chodzi o to, że program sam liczy średnią
zawodnika i wypisuje ją do pliku, ale nie sortuje jej tam, a
chce aby program sortował od największej do najmniejszej,
wraz z nazwiskiem. Chodzi nie tylko o średnią, ale też o ilość
wykluczeń, defektów itp. Oto kod:

program srednia;
uses crt;
var
s,d,w,t,u,b,zwyciestwa,drugiemiejsca,trzeciemiejsca,czwartemiejsca:text;
imieinazwisko,linia:string;{definiuje zmienna dotyczaca imienia i nazwiska}
wybor,pierwsze,drugie,trzecie,zera,wykluczenia,defekt,tasmy,upadki,bonusy,wybor2:real;
procedure dodaj;
begin
clrscr;
assign(s, 'C:\srednia.txt');{wczytuje plik}
rewrite(s);{czyszcze zawartosc pliku}
writeln(s, 'Imie i nazwisko:        Srednia biegowa:');
assign(d, 'C:\defekty.txt');{wczytuje plik}
rewrite(d);{czyszcze zawartosc pliku}
writeln(d, 'Imie i nazwisko:        Ilosc defektow:');
assign(w, 'C:\wykluczenia.txt');{wczytuje plik}
rewrite(w);{czyszcze zawartosc pliku}
writeln(w, 'Imie i nazwisko:        Ilosc wykluczen:');
assign(t, 'C:\tasmy.txt');{wczytuje plik}
rewrite(t);{czyszcze zawartosc pliku}
writeln(t, 'Imie i nazwisko:        Ilosc tasm:');
assign(u, 'C:\upadki.txt');{wczytuje plik}
rewrite(u);{czyszcze zawartosc pliku}
writeln(u, 'Imie i nazwisko:        Ilosc upadkow:');
assign(b, 'C:\bonusy.txt');{wczytuje plik}
rewrite(b);{czyszcze zawartosc pliku}
writeln(b, 'Imie i nazwisko:        Ilosc bonusow:');
assign(zwyciestwa, 'C:\zwyciestwa.txt');{wczytuje plik}
rewrite(zwyciestwa);{czyszcze zawartosc pliku}
writeln(zwyciestwa, 'Imie i nazwisko:        Ilosc zwyciestw:'); {dopisuje na poczatku pliku}
assign(drugiemiejsca, 'C:\drugiemiejsca.txt');{wczytuje plik}
rewrite(drugiemiejsca);{czyszcze zawartosc pliku}
writeln(drugiemiejsca, 'Imie i nazwisko:          Ilosc drugich miejsc:');
assign(trzeciemiejsca, 'C:\trzeciemiejsca.txt');{wczytuje plik}
rewrite(trzeciemiejsca);{czyszcze zawartosc pliku}
writeln(trzeciemiejsca, 'Imie i nazwisko:        Ilosc trzecich miejsc:');
assign(czwartemiejsca, 'C:\czwartemiejsca.txt');{wczytuje plik}
rewrite(czwartemiejsca);{czyszcze zawartosc pliku}
writeln(czwartemiejsca, 'Imie i nazwisko:        Ilosc czwartych miejsc:');
readln;
writeln('Podaj imi© i nazwisko zawodnika');
readln(imieinazwisko);{wprowadzanie imienia i nazwiska zawodnika}
writeln;
writeln('podaj ilo˜† zwyci©stw');{dane do liczenia}
readln(pierwsze);
writeln(zwyciestwa, imieinazwisko,  '            ', pierwsze);
writeln('Podaj ilo˜† drugich miejsc');{dane do liczenia}
readln(drugie);
writeln(drugiemiejsca, imieinazwisko,  '            ', drugie);
writeln('podaj ilo˜† trzecich miejsc');{dane do liczenia}
readln(trzecie);
writeln(trzeciemiejsca, imieinazwisko,  '            ', trzecie);
writeln('podaj ilo˜† zer');{dane do liczenia}
readln(zera);
writeln(czwartemiejsca, imieinazwisko,  '            ', zera);
writeln('podaj ilo˜† defekt˘w');{dane do liczenia}
readln(defekt);
writeln(d, imieinazwisko,  '            ', defekt);
writeln('podaj ilo˜† ta˜m');{dane do liczenia}
readln(tasmy);
writeln(t, imieinazwisko,  '            ', tasmy);
writeln('podaj ilo˜† upadk˘w');{dane do liczenia}
readln(upadki);
writeln(u, imieinazwisko,  '            ', upadki);
writeln('podaj ilo˜† wykluczeä');{dane do liczenia}
readln(wykluczenia);
writeln(w, imieinazwisko,  '            ', wykluczenia);
writeln;
writeln('podaj ilo˜† bonus˘w');  {dane do liczenia}
readln(bonusy);
writeln(b, imieinazwisko,  '            ', bonusy);
writeln;
write(s, imieinazwisko, '        ');{wypisuje danie zawodnika i robie przerwe}
writeln(s, (pierwsze*3+drugie*2+trzecie+bonusy)/(pierwsze+drugie+trzecie+zera+wykluczenia+upadki+tasmy+defekt):1:3);{srednia}
close(t);
close(d);
close(b);
close(s);
close(w);
close(u);
close(zwyciestwa);
close(drugiemiejsca);
close(trzeciemiejsca);
close(czwartemiejsca);{zamykam plik}
end;

procedure wczytaj;
begin
clrscr;
assign(s, 'C:\srednia.txt');{wczytuje plik}
reset(s);
append(s);
assign(d, 'C:\defekty.txt');{wczytuje plik}
reset(d);
append(d);
assign(w, 'C:\wykluczenia.txt');{wczytuje plik}
reset(w);
append(w);
assign(t, 'C:\tasmy.txt');{wczytuje plik}
reset(t);
append(t);
assign(u, 'C:\upadki.txt');{wczytuje plik}
reset(u);
append(u);
assign(b, 'C:\bonusy.txt');{wczytuje plik}
reset(b);
append(b);
assign(zwyciestwa, 'C:\zwyciestwa.txt');{wczytuje plik}
reset(zwyciestwa);
append(zwyciestwa);
assign(drugiemiejsca, 'C:\drugiemiejsca.txt');{wczytuje plik}
reset(drugiemiejsca);
append(drugiemiejsca);
assign(trzeciemiejsca, 'C:\trzeciemiejsca.txt');{wczytuje plik}
reset(trzeciemiejsca);
append(trzeciemiejsca);
assign(czwartemiejsca, 'C:\czwartemiejsca.txt');{wczytuje plik}
reset(czwartemiejsca);
append(czwartemiejsca);
readln;
writeln('Podaj imi© i nazwisko zawodnika');
readln(imieinazwisko);{wprowadzanie imienia i nazwiska zawodnika}
writeln;
writeln('podaj ilo˜† zwyci©stw');{dane do liczenia}
readln(pierwsze);
writeln(zwyciestwa, imieinazwisko,  '            ', pierwsze);
writeln('Podaj ilo˜† drugich miejsc');{dane do liczenia}
readln(drugie);
writeln(drugiemiejsca, imieinazwisko,  '            ', drugie);
writeln('podaj ilo˜† trzecich miejsc');{dane do liczenia}
readln(trzecie);
writeln(trzeciemiejsca, imieinazwisko,  '            ', trzecie);
writeln('podaj ilo˜† zer');{dane do liczenia}
readln(zera);
writeln(czwartemiejsca, imieinazwisko,  '            ', zera);
writeln('podaj ilo˜† defekt˘w');{dane do liczenia}
readln(defekt);
writeln(d, imieinazwisko,  '            ', defekt);
writeln('podaj ilo˜† ta˜m');{dane do liczenia}
readln(tasmy);
writeln(t, imieinazwisko,  '            ', tasmy);
writeln('podaj ilo˜† upadk˘w');{dane do liczenia}
readln(upadki);
writeln(u, imieinazwisko,  '            ', upadki);
writeln('podaj ilo˜† wykluczeä');{dane do liczenia}
readln(wykluczenia);
writeln(w, imieinazwisko,  '            ', wykluczenia);
writeln;
writeln('podaj ilo˜† bonus˘w');  {dane do liczenia}
readln(bonusy);
writeln(b, imieinazwisko,  '            ', bonusy);
writeln;
write(s, imieinazwisko, '        ');{wypisuje danie zawodnika i robie przerwe}
writeln(s, (pierwsze*3+drugie*2+trzecie+bonusy)/(pierwsze+drugie+trzecie+zera+wykluczenia+upadki+tasmy+defekt):1:3);{srednia}
close(t);
close(d);
close(b);
close(s);
close(w);
close(u);
close(zwyciestwa);
close(drugiemiejsca);
close(trzeciemiejsca);
close(czwartemiejsca);
end;
begin
clrscr;{czyszcze obraz}
writeln('1.Od nowa 2.Dodaj 3.Koniec');
read(wybor2);
repeat
if wybor2=1 then dodaj;
repeat
writeln('Czy chcesz dopisa† kolejnego zawodnika? 1-tak 2-nie');{takie menu;)}
readln(wybor);
if wybor=2 then halt;
if wybor=1 then wczytaj;
until (wybor=2) or (wybor=1);
if wybor2=2 then wczytaj;
repeat
writeln('Czy chcesz dopisa† kolejnego zawodnika? 1-tak 2-nie');{takie menu;)}
readln(wybor);
if wybor=2 then halt;
if wybor=1 then wczytaj;
until (wybor=2) or (wybor=1);
if wybor2=3 then halt;
until (wybor2=1) or (wybor2=2) or (wybor2=3);
end.
0

Wysiliłbyś się trochę i sformatował kod przed wrzuceniem na forum. Poza tym weź go w tagi delphi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1