Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {rastgele (random) dosya uzerinde}
- {
- alanlar:
- 1- kitapkodu,
- 2- kitapadi,
- 3- kitapyazari,
- 4- kitapadedi,
- 5- kitapyayinevi
- }
- uses crt;
- type
- kitap=record
- kodu:integer;
- adi:string[64];
- yazari:string[32];
- adedi:integer;
- yayinevi:string[32];
- end;
- var
- secim:char;
- {rastgele dosya icin bildirim alani}
- dosya:file of kitap;
- k:kitap;
- {rastgele dosya icin bildirim alani}
- procedure pr_dosyadenetle;
- begin
- assign(dosya,'020609.txt');
- {$I-}
- reset(dosya);
- {$I+}
- if ioResult<>0 then rewrite(dosya);{eger yoksa olustur}
- close(dosya);
- end;
- procedure pr_yeni;
- var
- sayac:integer;
- begin
- sayac:=0;
- clrscr;
- write('Kitap Rehberi | Yeni Kayit');writeln;
- repeat
- begin
- sayac:=sayac+1;
- writeln;
- write(sayac,'. kitabin adi :');readln(k.adi);
- write(sayac,'. kitabin kodu (sayisal) :');readln(k.kodu);
- write(sayac,'. kisinin yazari :');readln(k.yazari);
- write(sayac,'. ktiabin yayinevi :');readln(k.yayinevi);
- write(sayac,'. kitabin adedi (sayisal) :');readln(k.adedi);
- reset(dosya);{dosyamizi actik}
- seek(dosya,filesize(dosya));
- write(dosya,k); {dosyaya yaz}
- close(dosya);
- highvideo;write('Devam ediyor musunuz? E/H');secim:=readkey;lowvideo;
- end;
- until secim in ['h','H'];
- writeln;
- writeln(sayac,' kitabin bilgileri girildi. Ana menuye donuluyor...');
- delay(65000);delay(65000);
- end;
- procedure pr_arama;
- var
- aranacakisim:string[64];
- i:integer;
- begin
- clrscr;
- write('Bulmak icin kitabin adini giriniz: ');readln(aranacakisim);
- writeln;
- writeln(' Kodu Kitap Adi Kitap Yazari Kitap Yayinevi Adet');
- writeln('----- ------------------------ ------------------- ------------------- ----');
- reset(dosya);
- for i:=0 to filesize(dosya)-1 do
- begin
- seek(dosya,i);{dosyanin i. satirina odaklan}
- read(dosya,k);
- if aranacakisim=k.adi then
- writeln(k.kodu:5,k.adi:25,k.yazari:20,k.yayinevi:20,k.adedi:5);
- end;
- close(dosya);
- readln;
- end;
- procedure pr_duzenle;
- var
- duzenlenecekisim,duzenlenmisisim:string[64];
- i:integer;
- begin
- clrscr;
- reset(dosya);{dosyayi acar}
- writeln;
- write('Duzenlenecek kitap adini giriniz: ');readln(duzenlenecekisim);
- writeln;
- write('Yeni halini giriniz : ');readln(duzenlenmisisim);
- for i:=0 to filesize(dosya)-1 do
- begin
- seek(dosya,i);{i inci kayida odaklan ve sonra oku}
- read(dosya,k); {dosyadan verileri oku ve kay record tipli degiskene aktar}
- if k.adi=duzenlenecekisim then
- begin
- writeln('Eski hali: ',k.adi);
- k.adi:=duzenlenmisisim;
- writeln('Yeni hali: ',k.adi);
- seek(dosya,i);{tekrar odaklanmak gerek }
- write(dosya,k);
- writeln('Duzeltme yapilmistir.');
- end;
- end;
- close(dosya);
- readln;
- end;
- procedure pr_listele;
- var
- i:integer;
- begin
- clrscr;
- reset(dosya);{dosyayi actik}
- writeln(' Kodu Kitap Adi Kitap Yazari Kitap Yayinevi Adet');
- writeln('----- ------------------------ ------------------- ------------------- ----');
- for i:=0 to filesize(dosya)-1 do
- begin
- seek(dosya,i);
- read(dosya,k);
- if k.kodu=-1 then {-1 koda sahip kayitlar silinmistir.}
- continue; {-1 ise donguyu basa al}
- writeln(k.kodu:5,k.adi:25,k.yazari:20,k.yayinevi:20,k.adedi:5);
- end;
- readln;
- end;
- procedure pr_silme;
- var
- silinecekisim:string[64];
- i:integer;
- begin
- clrscr;
- reset(dosya);
- writeln;
- writeln('Silinecek kitabin adini giriniz: ');readln(silinecekisim);
- writeln;
- for i:=0 to filesize(dosya)-1 do
- begin
- seek(dosya,i);
- read(dosya,k);
- if k.adi=silinecekisim then
- begin
- seek(dosya,i);
- k.adi:='';
- k.yazari:='';
- k.kodu:=-1;
- k.yayinevi:='';
- k.adedi:=-1;
- write(dosya,k);
- end;
- end;
- close(dosya);
- writeln('Silme gerceklestirildi. Cikmak icin ENTER`a basiniz.');
- readln;
- end;
- procedure pr_menu;
- begin
- clrscr;
- pr_dosyadenetle;
- gotoxy(24,8);write('Rastgele Dosya - Kitap Rehberi');
- gotoxy(30,10);write('[1] - Yeni kayit');
- gotoxy(30,11);write('[2] - Arama');
- gotoxy(30,12);write('[3] - Silme');
- gotoxy(30,13);write('[4] - Duzenle');
- gotoxy(30,14);write('[5] - Listele');
- gotoxy(30,15);write('[6] - Cikis');
- gotoxy(1,25);
- secim:=readkey;
- if (ord(secim)=49) then {1in karsiligi 49}
- pr_yeni;
- if (ord(secim)=50) then {2=50}
- pr_arama;
- if (ord(secim)=51) then {3=51}
- pr_silme;
- if (ord(secim)=52) then
- pr_duzenle;
- if (ord(secim)=53) then
- pr_listele;
- if (ord(secim)=54) then
- halt;
- pr_menu;
- end;
- begin
- clrscr;
- pr_menu;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement