Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.53 KB | None | 0 0
  1. {rastgele (random) dosya uzerinde}
  2.  
  3. {
  4.  
  5. alanlar:
  6.  
  7.         1- kitapkodu,
  8.  
  9.         2- kitapadi,
  10.  
  11.         3- kitapyazari,
  12.  
  13.         4- kitapadedi,
  14.  
  15.         5- kitapyayinevi
  16.  
  17. }
  18.  
  19. uses crt;
  20.  
  21. type
  22.  
  23. kitap=record
  24.  
  25.    kodu:integer;
  26.  
  27.    adi:string[64];
  28.  
  29.    yazari:string[32];
  30.  
  31.    adedi:integer;
  32.  
  33.    yayinevi:string[32];
  34.  
  35. end;
  36.  
  37. var
  38.  
  39. secim:char;
  40.  
  41. {rastgele dosya icin bildirim alani}
  42.  
  43. dosya:file of kitap;
  44.  
  45. k:kitap;
  46.  
  47. {rastgele dosya icin bildirim alani}
  48.  
  49. procedure pr_dosyadenetle;
  50.  
  51. begin
  52.  
  53.      assign(dosya,'020609.txt');
  54.  
  55.      {$I-}
  56.  
  57.           reset(dosya);
  58.  
  59.      {$I+}
  60.  
  61.      if ioResult<>0 then rewrite(dosya);{eger yoksa olustur}
  62.  
  63.      close(dosya);
  64.  
  65. end;
  66.  
  67. procedure pr_yeni;
  68.  
  69. var
  70.  
  71. sayac:integer;
  72.  
  73. begin
  74.  
  75. sayac:=0;
  76.  
  77. clrscr;
  78.  
  79. write('Kitap Rehberi | Yeni Kayit');writeln;
  80.  
  81.      repeat
  82.  
  83.      begin
  84.  
  85.       sayac:=sayac+1;
  86.  
  87.       writeln;
  88.  
  89.       write(sayac,'. kitabin adi                :');readln(k.adi);
  90.  
  91.       write(sayac,'. kitabin kodu  (sayisal)    :');readln(k.kodu);
  92.  
  93.       write(sayac,'. kisinin yazari             :');readln(k.yazari);
  94.  
  95.       write(sayac,'. ktiabin yayinevi           :');readln(k.yayinevi);
  96.  
  97.       write(sayac,'. kitabin adedi (sayisal)    :');readln(k.adedi);
  98.  
  99.       reset(dosya);{dosyamizi actik}
  100.  
  101.       seek(dosya,filesize(dosya));
  102.  
  103.       write(dosya,k); {dosyaya yaz}
  104.  
  105.       close(dosya);
  106.  
  107.       highvideo;write('Devam ediyor musunuz? E/H');secim:=readkey;lowvideo;
  108.  
  109.      end;
  110.  
  111.      until secim in ['h','H'];
  112.  
  113.      writeln;
  114.  
  115.      writeln(sayac,' kitabin bilgileri girildi. Ana menuye donuluyor...');
  116.  
  117.      delay(65000);delay(65000);
  118.  
  119. end;
  120.  
  121. procedure pr_arama;
  122.  
  123. var
  124.  
  125. aranacakisim:string[64];
  126.  
  127. i:integer;
  128.  
  129. begin
  130.  
  131. clrscr;
  132.  
  133.      write('Bulmak icin kitabin adini giriniz: ');readln(aranacakisim);
  134.  
  135.      writeln;
  136.  
  137.      writeln(' Kodu                Kitap Adi        Kitap Yazari      Kitap Yayinevi Adet');
  138.  
  139.      writeln('----- ------------------------ ------------------- ------------------- ----');
  140.  
  141.      reset(dosya);
  142.  
  143.      for i:=0 to filesize(dosya)-1 do
  144.  
  145.      begin
  146.  
  147.           seek(dosya,i);{dosyanin i. satirina odaklan}
  148.  
  149.           read(dosya,k);
  150.  
  151.           if aranacakisim=k.adi then
  152.  
  153.             writeln(k.kodu:5,k.adi:25,k.yazari:20,k.yayinevi:20,k.adedi:5);
  154.  
  155.      end;
  156.  
  157.      close(dosya);
  158.  
  159. readln;
  160.  
  161. end;
  162.  
  163. procedure pr_duzenle;
  164.  
  165. var
  166.  
  167. duzenlenecekisim,duzenlenmisisim:string[64];
  168.  
  169. i:integer;
  170.  
  171. begin
  172.  
  173. clrscr;
  174.  
  175.      reset(dosya);{dosyayi acar}
  176.  
  177.      writeln;
  178.  
  179.      write('Duzenlenecek kitap adini giriniz: ');readln(duzenlenecekisim);
  180.  
  181.      writeln;
  182.  
  183.      write('Yeni halini giriniz     : ');readln(duzenlenmisisim);
  184.  
  185.      for i:=0 to filesize(dosya)-1 do
  186.  
  187.      begin
  188.  
  189.           seek(dosya,i);{i inci kayida odaklan ve sonra oku}
  190.  
  191.           read(dosya,k); {dosyadan verileri oku ve kay record tipli degiskene aktar}
  192.  
  193.           if k.adi=duzenlenecekisim then
  194.  
  195.           begin
  196.  
  197.                writeln('Eski hali: ',k.adi);
  198.  
  199.                k.adi:=duzenlenmisisim;
  200.  
  201.                writeln('Yeni hali: ',k.adi);
  202.  
  203.                seek(dosya,i);{tekrar odaklanmak gerek  }
  204.  
  205.                write(dosya,k);
  206.  
  207.                writeln('Duzeltme yapilmistir.');
  208.  
  209.           end;
  210.  
  211.      end;
  212.  
  213.      close(dosya);
  214.  
  215. readln;
  216.  
  217.  
  218.  
  219. end;
  220.  
  221. procedure pr_listele;
  222.  
  223. var
  224.  
  225. i:integer;
  226.  
  227. begin
  228.  
  229.      clrscr;
  230.  
  231.      reset(dosya);{dosyayi actik}
  232.  
  233.      writeln(' Kodu                Kitap Adi        Kitap Yazari      Kitap Yayinevi Adet');
  234.  
  235.      writeln('----- ------------------------ ------------------- ------------------- ----');
  236.  
  237.      for i:=0 to filesize(dosya)-1 do
  238.  
  239.      begin
  240.  
  241.           seek(dosya,i);
  242.  
  243.           read(dosya,k);
  244.  
  245.           if k.kodu=-1 then {-1 koda sahip kayitlar silinmistir.}
  246.  
  247.              continue; {-1 ise donguyu basa al}
  248.  
  249.           writeln(k.kodu:5,k.adi:25,k.yazari:20,k.yayinevi:20,k.adedi:5);
  250.  
  251.      end;
  252.  
  253.      readln;
  254.  
  255. end;
  256.  
  257.  
  258.  
  259. procedure pr_silme;
  260.  
  261. var
  262.  
  263. silinecekisim:string[64];
  264.  
  265. i:integer;
  266.  
  267. begin
  268.  
  269.      clrscr;
  270.  
  271.      reset(dosya);
  272.  
  273.      writeln;
  274.  
  275.      writeln('Silinecek kitabin adini giriniz: ');readln(silinecekisim);
  276.  
  277.      writeln;
  278.  
  279.      for i:=0 to filesize(dosya)-1 do
  280.  
  281.      begin
  282.  
  283.           seek(dosya,i);
  284.  
  285.           read(dosya,k);
  286.  
  287.           if k.adi=silinecekisim then
  288.  
  289.           begin
  290.  
  291.                seek(dosya,i);
  292.  
  293.                k.adi:='';
  294.  
  295.                k.yazari:='';
  296.  
  297.                k.kodu:=-1;
  298.  
  299.                k.yayinevi:='';
  300.  
  301.                k.adedi:=-1;
  302.  
  303.                write(dosya,k);
  304.  
  305.           end;
  306.  
  307.      end;
  308.  
  309.      close(dosya);
  310.  
  311.      writeln('Silme gerceklestirildi. Cikmak icin ENTER`a basiniz.');
  312.  
  313. readln;
  314.  
  315. end;
  316.  
  317. procedure pr_menu;
  318.  
  319. begin
  320.  
  321.      clrscr;
  322.  
  323.  
  324.  
  325.      pr_dosyadenetle;
  326.  
  327.  
  328.  
  329.      gotoxy(24,8);write('Rastgele Dosya - Kitap Rehberi');
  330.  
  331.      gotoxy(30,10);write('[1] - Yeni kayit');
  332.  
  333.      gotoxy(30,11);write('[2] - Arama');
  334.  
  335.      gotoxy(30,12);write('[3] - Silme');
  336.  
  337.      gotoxy(30,13);write('[4] - Duzenle');
  338.  
  339.      gotoxy(30,14);write('[5] - Listele');
  340.  
  341.      gotoxy(30,15);write('[6] - Cikis');
  342.  
  343.      gotoxy(1,25);
  344.  
  345.      secim:=readkey;
  346.  
  347.      if (ord(secim)=49) then {1in karsiligi 49}
  348.  
  349.           pr_yeni;
  350.  
  351.      if (ord(secim)=50) then  {2=50}
  352.  
  353.           pr_arama;
  354.  
  355.      if (ord(secim)=51) then   {3=51}
  356.  
  357.           pr_silme;
  358.  
  359.      if (ord(secim)=52) then
  360.  
  361.           pr_duzenle;
  362.  
  363.      if (ord(secim)=53) then
  364.  
  365.           pr_listele;
  366.  
  367.      if (ord(secim)=54) then
  368.  
  369.           halt;
  370.  
  371.      pr_menu;
  372.  
  373. end;
  374.  
  375. begin
  376.  
  377.      clrscr;
  378.  
  379.      pr_menu;
  380.  
  381. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement