Pomoc s databazou v pascale

Programovacie jazyky, rady, poradňa...
tominoZA
Novice
Novice
Príspevky: 1
Registrovaný: 03 feb 2009, 23:44

Pomoc s databazou v pascale

Príspevok od používateľa tominoZA »

Ahojte. Prosím Vás o pomoc. Potrebujem aby sa knihy v tejto knižnici pri výpise zoradili podľa nejakého vybraného parametra a ešte potrebujem nejako dokončiť to moje zlé a nedorobené zacyklené vyhľadávanie. Bol by som rád ak by sa dalo vyhľadávať podľa viacerých parametrov na výber. Ak by mi s tým vedel niekto poradiť prosím...Ďakujem veľmi pekne.

Kód: Vybrať všetko

program beta_version_kniznica;
uses crt;
type kniha=record
     nazov,autor,vydavatelstvo:string;
     rokvyd,pocets:word;
      end;

var kniznica:array[0..10] of kniha;
      pocet:byte;
      a:char;

{OK}
procedure nacitaj(var a:byte);
var i:byte;
begin
 clrscr;
 textcolor(11);
 write('kolko chces vlozit knih:');
 readln(a);
  for i:=1 to a do
   with kniznica[i] do
    begin
     write('nazov ',i,': ');readln(nazov);
     write('autor ',i,': ');readln(autor);
     write('vydavatelstvo ',i,': ');readln(vydavatelstvo);
     write('rok vydania ',i,': ');readln(rokvyd);
     write('pocet stran ',i,': ');readln(pocets);
    end;clrscr; write('data nacitane !(stlac lubovolny klaves)!');readkey;
end;
 {OK}
     {OK ale nezoraduje}

procedure vypis(a:byte);
var i:byte;
begin
clrscr;
writeln('vypis zoradeny podla roku vydania knihy');
 for i:=1 to a do
  with kniznica[i] do
     begin
    writeln('KNIHA cislo ',i);
    writeln;
    writeln('nazov: ',nazov);
    writeln('autor: ',autor);
    writeln('vydavatelstvo: ',vydavatelstvo);
    writeln('rok vydania: ',rokvyd);
    writeln('pocet stran: ',pocets);
    writeln;
   end;
  write('vypis ukonceny !(stlac lubovolny klaves)!');readkey;
end;

{OK ale nezoraduje}

{no ok}
procedure hladaj(a:char);
var retazec:string;
    i:integer;
begin
clrscr;
 while(ord(a)<>27)do
  begin
   writeln('zadavajte postupne retazec na vyhladanie v nazve knihy:');
   textcolor(12);
   writeln('Esc - ukoncit');
   repeat
     begin
      readln(retazec);
      clrscr;
       for i:=1 to 10 do
        begin
         with kniznica[i] do
          if (nazov)=(retazec) then vypis(i); writeln('Esc - ukoncit');
                               else writeln('hladany retazec sa v databaze nenachadza');
        end;

     end;
    until (ord(a)<>27);
    a:=readkey;
  end;
end;



BEGIN
while(ord(a)<>27)do
begin
 clrscr;
 textcolor(10);
 writeln('::::::::::::::::::KNIZNICA v1.02::::::::::::::::::');
 textcolor(11);
 writeln('1 - zapisat knihy');
 writeln('2 - vypis udajov');
 writeln('3 - vyhladavanie v nazve knih');
 textcolor(12);
 writeln('Esc - ukoncit');
 a:=readkey;
  case a of
   '1':begin nacitaj(pocet); end;
   '2':begin vypis(pocet); end;
   '3':begin hladaj(a); end;
  end;
end;
END.
Napísať odpoveď