Advertisement
Domerk

Черновик БД (2)

Jan 20th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 10.00 KB | None | 0 0
  1. {БД как она есть пока, не отлажена}
  2.  
  3. program bd;
  4. uses crt;
  5.  
  6. type
  7.     bibl = record
  8.     name: string [60];
  9.     autor: string [60];
  10.     izdatel: string [30];
  11.     janr: string [30];
  12.     exemplar: byte
  13.   end;
  14.  
  15. var
  16. f: file of bibl;
  17. key, i, n: integer;
  18. a: bibl;
  19.  
  20. procedure New;
  21.   begin
  22.   rewrite (f);
  23.   writeln ('Vvedite coliscestvo');
  24.   readln(n);
  25.      for i:=1 to n do begin
  26.      writeln ('name');
  27.      readln (a.name);
  28.      writeln ('autor');
  29.      readln (a.autor);
  30.      writeln ('izdatel');
  31.      readln (a.izdatel);
  32.      writeln ('janr');
  33.      readln (a.janr);
  34.      writeln ('exemplar');
  35.      readln (a.exemplar);
  36.      write (f,a);
  37.      readln;
  38.      clrscr;
  39.      end;
  40. end;
  41.  
  42. procedure Visuel;
  43.      begin
  44.      reset(f);
  45.      while not eof(f) do begin
  46.      read (f, a);
  47.      writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  48. end;end;
  49.  
  50. procedure Dobav;
  51. var size: integer;
  52.      begin
  53.      size:=filesize(f);
  54.      seek (f, size);
  55.      writeln ('Vvedite coliscestvo');
  56.      READLN(N);
  57.      for i:=1 to n do begin
  58.          writeln ('name');
  59.          readln (a.name);
  60.          writeln ('autor');
  61.          readln (a.autor);
  62.          writeln ('izdatel');
  63.          readln (a.izdatel);
  64.          writeln ('janr');
  65.          readln (a.janr);
  66.          writeln ('exemplar');
  67.          readln (a.exemplar);
  68.          write (f,a);
  69.      readln;
  70.      clrscr;
  71. end;
  72.  
  73. procedure Search;
  74. var
  75.   b: string;
  76.   x, y: integer;
  77. begin
  78. clrscr;
  79.      repeat
  80.           clrscr;
  81.           writeln ('Viberete razdel');
  82.           writeln ('1 - Name');
  83.           writeln ('2 - Autor');
  84.           writeln ('3 - Izdatel');
  85.           writeln ('4 - Janr');
  86.           writeln ('5 - Exemplar');
  87.           writeln ('6 - Return');
  88.  
  89.           read (key);
  90.  
  91.                case key of
  92.  
  93.                1: begin
  94.                write ('Name: ');
  95.                read (b);
  96.  
  97.                while not eof(f) do begin
  98.                read (f, a);
  99.                   if a.name = b y=then begin
  100.                   writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  101.                   end; end;
  102.                readln; clrscr;
  103.                end;
  104.  
  105.                2: begin
  106.                writeln ('Autor: ');
  107.                read (b);
  108.  
  109.                while not eof(f) do begin
  110.                read (f, a);
  111.                   if a.autor = b then begin
  112.                   writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  113.                   end; end;
  114.                readln; clrscr;
  115.                end;
  116.  
  117.                3: begin
  118.                writeln ('Izdatel: ');
  119.                read (b);
  120.  
  121.                while not eof(f) do begin
  122.                read (f, a);
  123.                   if a.izdatel = b then begin
  124.                   writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  125.                   end; end;
  126.                readln; clrscr;
  127.                end;
  128.  
  129.                4: begin
  130.                writeln ('Janr: ');
  131.                read (b);
  132.  
  133.                while not eof(f) do begin
  134.                read (f, a);
  135.                   if a.janr = b then begin
  136.                   writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  137.                   end; end;
  138.                readln; clrscr;
  139.                end;
  140.  
  141.                5: begin
  142.                writeln ('Kolichestvo exemplarov: ');
  143.                read (x);
  144.  
  145.                while not eof (f) do begin
  146.                read (f, a);
  147.                   if a.exemplar = x then begin
  148.                   writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  149.                   end; end;
  150.                readln; clrscr;
  151.                end;
  152.  
  153.                6: begin clrscr; end;
  154. readln;
  155. end;
  156.  
  157. procedure Delet;
  158. var
  159. d, c: bibl;
  160. b, y: string;
  161. x: integer;
  162. begin
  163. clrscr;
  164.      repeat
  165.           clrscr;
  166.           writeln ('Viberete razdel');
  167.           writeln ('1 - Name');
  168.           writeln ('2 - Autor');
  169.           writeln ('3 - Izdatel');
  170.           writeln ('4 - Janr');
  171.           writeln ('5 - Exemplar');
  172.           writeln ('6 - Name + Autor');
  173.           writeln ('7 - Return');
  174.  
  175.           read (key);
  176.  
  177.           1: begin
  178.           writeln ('Name: ');
  179.           read (b);
  180.           n:=filesize(f);
  181.  
  182.           for i:=1 to n do begin
  183.               read (f, a);
  184.                     if a.name = b then begin
  185.                     c:=a;
  186.                        while not eof(f) do begin
  187.                              seek (f,n);
  188.                              read (f, a);
  189.                              d:=a;
  190.                              seek (f, n-1);
  191.                              write (f, a);
  192.                        end;
  193.                     end;
  194.           end;
  195.           seek (f, n);
  196.           truncate (f);
  197.  
  198.           writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  199.           end;
  200.  
  201.           readl;
  202.           clrscr;
  203.           end;
  204.  
  205.  
  206.           2: begin
  207.           writeln ('Autor: ');
  208.           read (b);
  209.           n:=filesize(f);
  210.  
  211.           for i:=1 to n do begin
  212.               read (f, a);
  213.                     if a.autor = b then begin
  214.                     c:=a;
  215.                        while not eof(f) do begin
  216.                              seek (f,n);
  217.                              read (f, a);
  218.                              d:=a;
  219.                              seek (f, n-1);
  220.                              write (f, a);
  221.                        end;
  222.                     end;
  223.           end;
  224.           seek (f, n);
  225.           truncate (f);
  226.  
  227.           writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  228.           end;
  229.  
  230.           readl;
  231.           clrscr;
  232.           end;
  233.  
  234.           3: begin
  235.           writeln ('Izdatel: ');
  236.           read (b);
  237.           n:=filesize(f);
  238.  
  239.           for i:=1 to n do begin
  240.               read (f, a);
  241.                     if a.izdatel = b then begin
  242.                     c:=a;
  243.                        while not eof(f) do begin
  244.                              seek (f,n);
  245.                              read (f, a);
  246.                              d:=a;
  247.                              seek (f, n-1);
  248.                              write (f, a);
  249.                        end;
  250.                     end;
  251.           end;
  252.           seek (f, n);
  253.           truncate (f);
  254.  
  255.           writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  256.           end;
  257.  
  258.           readl;
  259.           clrscr;
  260.           end;
  261.  
  262.           4: begin
  263.           writeln ('Janr: ');
  264.           read (b);
  265.           n:=filesize(f);
  266.  
  267.           for i:=1 to n do begin
  268.               read (f, a);
  269.                     if a.janr = b then begin
  270.                     c:=a;
  271.                        while not eof(f) do begin
  272.                              seek (f,n);
  273.                              read (f, a);
  274.                              d:=a;
  275.                              seek (f, n-1);
  276.                              write (f, a);
  277.                        end;
  278.                     end;
  279.           end;
  280.           seek (f, n);
  281.           truncate (f);
  282.  
  283.           writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  284.           end;
  285.  
  286.           readl;
  287.           clrscr;
  288.           end;
  289.  
  290.           5:begin
  291.           writeln ('Exemplar: ');
  292.           read (x);
  293.           n:=filesize(f);
  294.  
  295.           for i:=1 to n do begin
  296.                    read (f, a);
  297.                    if a.exemplar = x then begin
  298.                        c:=a;
  299.                        while not eof(f) do begin
  300.                              seek (f,n);
  301.                              read (f, a);
  302.                              d:=a;
  303.                              seek (f, n-1);
  304.                              write (f, a);
  305.                        end;
  306.                     end;
  307.           end;
  308.           seek (f, n);
  309.           truncate (f);
  310.  
  311.           writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  312.           end;
  313.  
  314.           readl;
  315.           clrscr;
  316.           end;
  317.  
  318.           6:begin
  319.           write ('Name: ');
  320.           readln (b);
  321.           write ('Autor: ');
  322.           readln (y);
  323.           n:=filesize(f);
  324.  
  325.           for i:=1 to n do begin
  326.                    read (f, a);
  327.                    if (a.name=b) and (a.autor=y)  then begin
  328.                        c:=a;
  329.                        while not eof(f) do begin
  330.                              seek (f,n);
  331.                              read (f, a);
  332.                              d:=a;
  333.                              seek (f, n-1);
  334.                              write (f, a);
  335.                        end;
  336.                     end;
  337.           end;
  338.           seek (f, n);
  339.           truncate (f);
  340.  
  341.           writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  342.           end;
  343.  
  344.           readl;
  345.           clrscr;
  346.           end;
  347.  
  348.           7: begin clrscr; end;
  349. readln;
  350. end;
  351.  
  352. procedure Sort;
  353. var y, i: integer;
  354. b: bibl;
  355. begin
  356.   clrscr;
  357.   n:=filesize(f);
  358.   for y:=n dovnto 1 do
  359.     for i:=1 to (y-1) do
  360.     begin
  361.     seek (f, i-1);
  362.     read (f, a);
  363.     read (f, b);
  364.           if a.name<b.name then begin
  365.           seek (f,i-1);
  366.           writeln (f, b);
  367.           seek (f, i);
  368.           writeln (f, a); end;
  369.     end; end;
  370.  
  371.     while not eof (f) do begin
  372.      read (f, a);
  373.      writeln (a.name,' ',a.autor,' ',a.izdatel,' ',a.janr,' ',a.exemplar);
  374. end;end;
  375.  
  376. begin
  377. clrscr;
  378.  
  379. assign (f,'FB.txt');
  380.  
  381. repeat
  382.      clrscr;
  383.      writeln ('Viberete punct');
  384.      writeln ('1 - new');
  385.      writeln ('2 - visuel');
  386.      writeln ('3 - dobav');
  387.      writeln ('4 - search');
  388.      writeln ('5 - delet');
  389.      writeln ('6 - sort');
  390.      writeln ('7 - exit');
  391.  
  392.      readln(key);
  393.  
  394.      case key of
  395.  
  396.       1: begin New; readln; end;
  397.       2: begin Visuel; readln; end;
  398.       3: begin Dobav; readln;  end;
  399.       4: begin Search; readln;  end;
  400.       5: begin Delet; readln; end;
  401.       6: begin  Sort;  readln;  end;
  402.       7: begin  writeln ('end');  readln;   end;
  403.     end;
  404.  
  405.      until key=7;
  406.      close (f);
  407.      readln;
  408.      clrscr;
  409. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement