Baza danych działa ale nie wiem jak dopisać do niej żeby sortowało mi według Marki samochodu… ma ktoś na to jakiś pomysł?
program salon_samo;
uses crt;
type
auto=record
marka:string;
rok:integer;
ilosc:integer;
cena:real;
upust:real;
end;
auta=array[1..50] of auto;
var
plik:text;
z:char;
n:integer;
salon:auta;
sciezka:string;
procedure DodajMarke;
begin
n:=n+1;
write('Podaj nazwe marki: '); readln(salon[n].marka);
write('Podaj rok produkcji: '); readln(salon[n].rok);
write('Podaj ilosc sztuk: '); readln(salon[n].ilosc);
write('Podaj cene: '); readln(salon[n].cena);
write('Podaj ewentaulny upust: '); readln(salon[n].upust);
end;
procedure UsunMarkeoIndexie(x:integer);
var
i:integer;
begin
if (x>n) then writeln('Nie ma takiego wpisu.') else
for i:=x to n-1 do salon[i]:=salon[i+1];
n:=n-1;
end;
procedure UsunMarke;
var
x:integer;
begin
write('Wybierz numer wpisu ktory ma byc usuniety: ');
readln(x);
UsunMarkeoIndexie(x);
end;
procedure PokazBaze;
var
i:integer;
begin
clrscr;
if n=0 then writeln('W bazie nie ma wpisow') else
for i:=1 to n do
begin
writeln('------- Wpis nr ',i,' -----------------------');
writeln('Marka: ',salon[i].marka);
writeln('Rok produkcji: ',salon[i].rok);
writeln('Ilosc sztuk: ',salon[i].ilosc);
writeln('Cena: ',salon[i].cena:0:2);
writeln('Upust: ',salon[i].upust:0:2);
end;
writeln('Wcisnij cos...');
readkey;
end;
procedure ZmienDane;
var
i:integer;
begin
write('Wybierz numer wpisu ktory ma byc edytowany: ');
readln(i);
UsunMarkeoIndexie(i);
DodajMarke;
end;
procedure PokazMenu;
begin
clrscr;
writeln('1. Tworzenie bazy danych');
writeln('2. Przegladanie bazy danych');
writeln('3. Dopisywanie danych');
writeln('4. Zmiana danych');
writeln('5. Usuwanie rekordu');
writeln('6. Zapisz baze do pliku');
writeln('7. Koniec');
end;
procedure ZapiszDoPliku;
var
i:integer;
begin
write('Podaj nazwe pliku: ');
readln(sciezka);
assign(plik,sciezka);
rewrite(plik);
writeln(plik,n);
for i:=1 to n do
begin
writeln(plik,salon[i].marka);
writeln(plik,salon[i].rok);
writeln(plik,salon[i].ilosc);
writeln(plik,salon[i].cena);
writeln(plik,salon[i].upust);
end;
close(plik);
writeln('Zapisano do pliku, wcisnij cos...');
readkey;
end;
procedure OdczytajZpliku;
var
i:integer;
begin
assign(plik,sciezka);
reset(plik);
readln(plik,n);
for i:=1 to n do
begin
readln(plik,salon[i].marka);
readln(plik,salon[i].rok);
readln(plik,salon[i].ilosc);
readln(plik,salon[i].cena);
readln(plik,salon[i].upust);
end;
close(plik);
end;
procedure UtworzBaze;
var
z:char;
begin
clrscr;
writeln('1. Odczytaj baze z pliku');
writeln('2. Utworz baze recznie (podajc dane)');
repeat
z:=readkey;
until((z<'3') and (z>'0'));
if z='1' then
begin
write('Podaj sciezke i nazwe pliku: ');
readln(sciezka);
OdczytajZPliku;
end;
if z='2' then
begin
n:=0;
repeat
DodajMarke;
writeln('Czy chcesz dodac kolejny rekord? t\n');
repeat
z:=readkey;
until((z='t') or (z='n'));
until(z='n');
end;
writeln;
writeln('Zakonczono tworzenie bazy, wcisnij cos...');
readkey;
end;
begin
n:=0;
sciezka:='bazaDanych.txt';
repeat
PokazMenu;
repeat
z:=readkey;
until((z>'0') and (z<'8'));
if z='1' then UtworzBaze;
if z='2' then PokazBaze;
if z='3' then DodajMarke;
if z='4' then ZmienDane;
if z='5' then UsunMarke;
if z='6' then ZapiszDoPliku;
until(z='7');
end.