Pascal Örnekleri 17 ( Dosyalama İşlemleri )
DOSYALAMA
Menü programı kullanılarak ad, soyad girişleri yapıldıktan sonra bunları listeleme, arama..
uses crt;
var
isim,ad,soy:string;dosya:text;
tus:char;
procedure kayit;
begin
{$i-} append(dosya); {$i+}
if ioresult<>0 then rewrite(dosya);
repeat
write(‘Ad gir:’);
readln(ad);
write(‘Soyad gir:’);
readln(soy);
writeln(dosya,ad);
writeln(dosya,soy);
writeln(‘Başka kayıt yapılsınmı:(E,H,ESC)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’,#27];
until tus in[‘H’,’h’,#27];
close(dosya);
end;
procedure listeleme;
begin
{$i-} reset(dosya); {$i+}
if ioresult=0 then begin
while not eof(dosya) do begin
write(‘Ad:’); readln(dosya,ad); write(ad:10);
write(‘ Soyad:’); readln(dosya,soy); write(soy:10);
writeln;
end;
close(dosya);
end;
end;
procedure arama;
begin
{$i-}reset(dosya);{$i+}
writeln(‘Aranan isim:’); readln(isim);
while not eof(dosya) do begin
readln(dosya,ad);
readln(dosya,soy);
if isim=ad then begin
write(‘Adı:’,ad:15);
write(‘ Soyadı:’,soy:15);
break;
end;
end;
close(dosya);
end;
begin
clrscr;
assign(dosya,’d:deneme.txt’);
repeat
repeat
writeln(‘****MENÜ****’);
writeln(‘1. Kayıt’);
writeln(‘2. Listeleme’);
writeln(‘3. Çıkış’);
writeln(‘4. Arama’);
tus:=Readkey;
Until tus in [‘1′,’2′,’3′,’4’,#27];
clrscr;
case (tus) of
‘1’:kayit;
‘2’:listeleme;
‘3’:halt;
‘4’:arama;
end;
until (tus=#27);
readln;
end.
Ad, soyad, maaş ve telefon bilgilerini dosyaya yazmak ve listeleyebilme, arama, düzeltme, silme ve çıkış menüleri..
uses crt;
type
kay=record
tele:string[11];
maas:integer;
ad,soy,ara:string;
end;
var
sec:char;
tus:char;
i,x,y:byte;
dosya:file of kay;
dos:kay;
procedure ciz1;
begin
for i:=1 to 77 do begin
gotoxy(i,1); write(chr(205));
gotoxy(i,24); write(chr(205));
end;
for i:=1 to 24 do begin
gotoxy(1,i); write(chr(186));
gotoxy(77,i); writeln(chr(186));
end;
gotoxy(1,1); write(chr(201));
gotoxy(1,24); write(chr(200));
gotoxy(77,1); write(chr(187));
gotoxy(77,24); write(chr(188));
end;
procedure ciz;
begin
for i:=20 to 60 do begin
gotoxy(i,8); write(chr(205));
gotoxy(i,20); write(chr(205));
end;
for i:=8 to 20 do begin
gotoxy(20,i); write(chr(186));
gotoxy(60,i); writeln(chr(186));
end;
gotoxy(20,8); write(chr(201));
gotoxy(20,20); write(chr(200));
gotoxy(60,8); write(chr(187));
gotoxy(60,20); write(chr(188));
end;
procedure bilgi_girisi;
begin
assign(dosya,’d:deneme.dat’ );
{$i-} reset (dosya); {$i+}
if ioresult<>0 then rewrite(dosya);
repeat
seek(dosya,filesize(dosya));
gotoxy(2,2);
write(‘Adınızı giriniz ==>’);readln(dos.ad);
gotoxy(2,3);
write(‘Soyadınızı giriniz ==>’);readln(dos.soy);
gotoxy(2,4);
write(‘Maasını giriniz ==>’);readln(dos.maas);
gotoxy(2,5);
write(‘Telefon numarasını giriniz ==>’);readln(dos.tele);
gotoxy(2,6);
write(dosya,dos);
writeln;
gotoxy(2,6);
writeln(‘Başka işlem yapılsın mı?:(E,H,ESC)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’,#27];
until tus in [‘H’,’h’,#27]; clrscr;
close(dosya); ciz;
end;
procedure listele;
var
j:integer;
begin
assign(dosya,’d:deneme.dat’ );
{$i-} reset(dosya); {$i+}
if(ioresult=0) then begin
repeat
{while not eof(dosya) do begin}
gotoxy(1,2);
for j:=0 to filesize(dosya)-1 do
begin
seek(dosya,j);
read(dosya,dos);
gotoxy(2,2+j);
write(‘ Ad =>’);
gotoxy(9,2+j);
write(dos.ad);
gotoxy(17,2+j);
write(‘ Soyad =>’);
gotoxy(28,2+j);
write(dos.soy);
gotoxy(36,2+j);
write(‘ Maas =>’);
gotoxy(46,2+j);
write(dos.maas);
gotoxy(52,2+j);
write(‘ Telefon =>’);
gotoxy(65,2+j);
write(dos.tele);
writeln;
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
close(dosya);
ciz;
end;
end;
procedure arama;
var
ara:string;
begin
{$i-} reset(dosya) {$i+};
if(ioresult=0) then begin
repeat
gotoxy(2,2);
write(‘Aramak istediğiniz adı giriniz:’);readln(ara);
{while not eof(dosya) do begin}
for i:=0 to filesize(dosya)-1 do
begin
seek(dosya,i);
read(dosya,dos);
if ara=dos.ad then begin
gotoxy(2,3);
write(‘ Ad:’); write(dos.ad:5);
write(‘ Soyad:’); write(dos.soy:5);
write(‘ Maaşı:’); write(dos.maas:5);
write(‘ Telefon:’); write(dos.tele:5);
break;
end;
writeln;
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
close(dosya);
ciz;
end;
end;
procedure telif;
begin
repeat
gotoxy(25,2);
writeln(‘KERİM KORKMAZ’);
gotoxy(25,3);
writeln(‘kerim_korkmaz_53@hotmail.com’);
gotoxy(25,5);
writeln(‘H.KEMAL ANADOLU MESLEK LİSESİ RİZE’);
gotoxy(25,7);
writeln(‘DERS ÖĞRETMENİ ÖZGÜR KUYUCU’);
gotoxy(25,8);
writeln(‘yakmoz@hotmail.com’);
for i:=1 to 10 do
begin
writeln;
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
ciz;
end;
procedure kayit_silme;
var
ara:string;
j:integer;
begin
{$i-} reset(dosya); {$i+}
if ioresult=0 then begin repeat
if filesize(dosya)>0 then
begin
gotoxy(2,2);
write(‘Silinecek kişinin adı ==>’); readln(ara);
gotoxy(2,3);
write(‘Adı ==>’); write(dos.ad);
gotoxy(2,4);
write(‘Soyadı ==>’); write(dos.soy);
gotoxy(2,5);
write(‘Maaşı ==>’); write(dos.maas);
gotoxy(2,6);
write(‘Telefonu ==>’); writeln(dos.tele);
for i:=0 to filesize(dosya)-1 do
begin
seek(dosya,i); read(dosya,dos);
j:=1;
if ara=dos.ad then
break; end;
if ara=dos.ad then begin
for j:=i+1 to filesize(dosya)-1 do
begin
seek(dosya,j); read(dosya,dos);
seek(dosya,j-1);
write(dosya,dos);
end;
seek(dosya,filesize(dosya)-1);
truncate(dosya);
gotoxy(2,7);
writeln(‘Kayıt silindi’);
end;
end else begin
gotoxy(5,5) ;write(‘Dosyada kayıt yok’);end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
close(dosya);
ciz;
end;
end;
procedure duzeltme;
var
ara:string;
begin
repeat
{$i-} reset(dosya); {$i+}
if ioresult=0 then begin
gotoxy(2,2);
write(‘Düzeltilecek ismi gir ==>’); readln(ara);
for i:=0 to filesize(dosya)-1 do begin
seek(dosya,i); read(dosya,dos);
if (ara=dos.ad) then
break;
end;
if (ara=dos.ad) then begin
seek(dosya,i);
gotoxy(2,3);
write(‘Yeni ismi gir ==>’); readln(dos.ad);
gotoxy(2,4);
write(‘Yeni soyad gir ==>’); readln(dos.soy);
gotoxy(2,5);
write(‘Yeni maaşı gir ==>’); readln(dos.maas);
gotoxy(2,6);
write(‘Yeni telefonu gir ==>’); readln(dos.tele);
gotoxy(2,7);
write(dosya,dos);
end
else begin
gotoxy(24,2);
write(‘Dosyada kayıt yok’);
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
end;
until tus in [‘E’,’e’];
clrscr;
ciz;
end;
begin clrscr;
assign(dosya,’d:deneme.dat’);
ciz;
x:=30;y:=11;
repeat
repeat
gotoxy(23,9);
textcolor(15);
writeln(‘<===========M E N Ü============>’);
gotoxy(30,11);
writeln(‘1-Bilgi girişi’);
gotoxy(30,12);
writeln(‘2-Listeleme’);
gotoxy(30,13);
writeln(‘3-Arama’);
gotoxy(30,14);
writeln(‘4-Kayıt Silme’);
gotoxy(30,15);
writeln(‘5-Kayıt Düzeltme’);
gotoxy(30,16);
writeln(‘6-Çıkış’);
gotoxy(30,17);
writeln(‘7-Telif Hakkı’);
gotoxy(x,y);
sec:=readkey;
if sec=’s’ then
y:=y+1;
if y=18 then
y:=11;
if sec=’w’ then
y:=y-1;
if y=10 then
y:=17;
until sec in[‘1′,’2′,’3′,’4′,’5′,’6′,’7’,#27,#13];
clrscr;
if sec=#13 then begin ciz1;
if y=11 then bilgi_girisi
else if y=12 then listele
else if y=13 then arama
else if y=14 then kayit_silme
else if y=15 then duzeltme
else if y=16 then exit
else if y=17 then telif; end;
case sec of
‘1’: begin ciz1;bilgi_girisi; end;
‘2’: begin ciz1;listele; end;
‘3’: begin ciz1;arama; end;
‘4’: begin ciz1;kayit_silme; end;
‘5’: begin ciz1;duzeltme; end;
‘6’: begin exit; end;
‘7’: begin ciz1;telif end;
end;
until tus=#27;
readln;
end.
Öğrenci takip (öğrenci bilgilerini dosyaya yazma) programı
uses crt;
type
notlar=record
not1:byte;
not2:byte;
ort:byte;
end;
dersnotu=record
mat:notlar;
fizik:notlar;
kimya:notlar;
end;
ogrenci=record
ad:string[15];
soy:string[15];
numara:string[15];
dersler:dersnotu;
end;
var
dosya:file of ogrenci;
sinif:ogrenci;
sec:char;
tus:char;
i,x,y:byte;
procedure ciz1;
begin
for i:=1 to 77 do begin
gotoxy(i,1); write(chr(205));
gotoxy(i,24); write(chr(205));
end;
for i:=1 to 24 do begin
gotoxy(1,i); write(chr(186));
gotoxy(77,i); writeln(chr(186));
end;
gotoxy(1,1); write(chr(201));
gotoxy(1,24); write(chr(200));
gotoxy(77,1); write(chr(187));
gotoxy(77,24); write(chr(188));
end;
procedure ciz;
begin
for i:=20 to 60 do begin
gotoxy(i,8); write(chr(205));
gotoxy(i,20); write(chr(205));
end;
for i:=8 to 20 do begin
gotoxy(20,i); write(chr(186));
gotoxy(60,i); writeln(chr(186));
end;
gotoxy(20,8); write(chr(201));
gotoxy(20,20); write(chr(200));
gotoxy(60,8); write(chr(187));
gotoxy(60,20); write(chr(188));
end;
procedure ogrenci_girisi;
begin
assign(dosya,’d:deneme.dat’ );
{$i-} reset (dosya); {$i+}
if ioresult<>0 then rewrite(dosya);
repeat
seek(dosya,filesize(dosya));
gotoxy(2,2);
write(‘Adınızı giriniz ==>’);readln(sinif.ad);
gotoxy(2,3);
write(‘Soyadınızı giriniz ==>’);readln(sinif.soy);
gotoxy(2,4);
write(‘Numarasını giriniz ==>’);readln(sinif.numara);
gotoxy(2,5);
write(‘1. Matematik Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not1);
gotoxy(2,6);
write(‘2. Matematik Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not2);
sinif.dersler.mat.ort:=(sinif.dersler.mat.not1+sinif.dersler.mat.not2) div 2;
gotoxy(2,7);
write(‘1. Fizik Ders notunu giriniz ==>’);readln(sinif.dersler.fizik.not1);
gotoxy(2,8);
write(‘2. Fizik Ders notunu giriniz ==>’);readln(sinif.dersler.fizik.not2);
sinif.dersler.fizik.ort:=(sinif.dersler.fizik.not1+sinif.dersler.fizik.not2) div 2;
gotoxy(2,9);
write(‘1. Kimya ders notunu giriniz ==>’);readln(sinif.dersler.kimya.not1);
gotoxy(2,10);
write(‘2. Kimya ders notunu giriniz ==>’);readln(sinif.dersler.kimya.not2);
sinif.dersler.kimya.ort:=(sinif.dersler.kimya.not1+sinif.dersler.kimya.not2) div 2;
gotoxy(2,11);
write(dosya,sinif);
writeln;
gotoxy(3,23);
writeln(‘Başka işlem yapılsın mı?:(E,H,ESC)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’,#27];
until tus in [‘H’,’h’,#27]; clrscr;
close(dosya); ciz;
end;
procedure listele;
var
j:integer;
begin
assign(dosya,’d:deneme.dat’ );
{$i-} reset(dosya); {$i+}
if(ioresult=0) then begin
repeat
{while not eof(dosya) do begin}
gotoxy(2,2);
for j:=0 to filesize(dosya)-1 do
begin
seek(dosya,j);
read(dosya,sinif);
gotoxy(2,2+j);
write(‘ Ad ==>’);
gotoxy(9,2+j);
write(sinif.ad);
gotoxy(17,2+j);
write(‘ Soyad ==>’);
gotoxy(28,2+j);
write(sinif.soy);
gotoxy(36,2+j);
write(‘ Numarası ==>’);
write(sinif.numara);
gotoxy(46,2+j);
writeln;
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
close(dosya);
ciz;
end;
end;
procedure arama;
var
ara:string;
begin
{$i-} reset(dosya) {$i+};
if(ioresult=0) then begin
repeat
gotoxy(2,2);
write(‘Aramak istediğiniz adı giriniz:’);readln(ara);
{while not eof(dosya) do begin}
for i:=0 to filesize(dosya)-1 do
begin
seek(dosya,i);
read(dosya,sinif);
if ara=sinif.ad then begin
gotoxy(2,3);
write(‘ Ad:’); write(sinif.ad:5);
write(‘ Soyad:’); write(sinif.soy:5);
write(‘ Numarası:’); write(sinif.numara:5);
write(‘ Ders notları =>’);
gotoxy(2,4);
write(‘ Matematik 1. notu ==>’);
write(sinif.dersler.mat.not1);
gotoxy(2,5);
write(‘ Matematik 2. notu ==>’);
writeln(sinif.dersler.mat.not2);
gotoxy(29,5);
write(‘ Ortalaması ==>’);
write(sinif.dersler.mat.ort);
gotoxy(2,6);
write(‘ Fizik 1. notu ==>’);
writeln(sinif.dersler.fizik.not1);
gotoxy(2,7);
write(‘ Fizik 2. notu ==>’);
writeln(sinif.dersler.fizik.not2);
gotoxy(29,7);
write(‘ Ortalaması ==>’);
write(sinif.dersler.fizik.ort);
gotoxy(2,8);
write(‘ Kimya 1. notu ==>’);
writeln(sinif.dersler.kimya.not1);
gotoxy(2,9);
write(‘ Kimya 2. notu ==>’);
writeln(sinif.dersler.kimya.not2);
gotoxy(29,9);
write(‘ Ortalaması ==>’);
write(sinif.dersler.kimya.ort);
break;
end;
writeln;
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
close(dosya);
ciz;
end;
end;
procedure kayit_silme;
var
ara:string;
j:integer;
begin
{$i-} reset(dosya); {$i+}
if ioresult=0 then begin repeat
if filesize(dosya)>0 then
begin
gotoxy(2,2);
write(‘Silinecek kişinin adı ==>’); readln(ara);
gotoxy(2,3);
write(‘Adı ==>’); write(sinif.ad);
gotoxy(2,4);
write(‘Soyadı ==>’); write(sinif.soy);
gotoxy(2,5);
write(‘Numarası ==>’); write(sinif.numara);
for i:=0 to filesize(dosya)-1 do
begin
seek(dosya,i); read(dosya,sinif);
j:=1;
if ara=sinif.ad then
break; end;
if ara=sinif.ad then begin
for j:=i+1 to filesize(dosya)-1 do
begin
seek(dosya,j); read(dosya,sinif);
seek(dosya,j-1);
write(dosya,sinif);
end;
seek(dosya,filesize(dosya)-1);
truncate(dosya);
gotoxy(2,7);
writeln(‘Kayıt silindi’);
end;
end else begin
gotoxy(5,5) ;write(‘Dosyada kayıt yok’);end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
close(dosya);
ciz;
end;
end;
procedure telif;
begin
repeat
gotoxy(25,2);
writeln(‘KERİM KORKMAZ’);
gotoxy(25,3);
writeln(‘kerim_korkmaz_53@hotmail.com’);
gotoxy(25,5);
writeln(‘H.KEMAL ANADOLU MESLEK LİSESİ RİZE’);
for i:=1 to 10 do
begin
writeln;
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
until tus in [‘E’,’e’]; clrscr;
ciz;
end;
procedure duzeltme;
var
ara:string;
begin
repeat
{$i-} reset(dosya); {$i+}
if ioresult=0 then begin
gotoxy(2,2);
write(‘Düzeltilecek ismi gir ==>’); readln(ara);
for i:=0 to filesize(dosya)-1 do begin
seek(dosya,i); read(dosya,sinif);
if (ara=sinif.ad) then
break;
end;
if (ara=sinif.ad) then begin
seek(dosya,i);
gotoxy(2,3);
write(‘Yeni ismi gir ==>’); readln(sinif.ad);
gotoxy(2,4);
write(‘Yeni soyad gir ==>’); readln(sinif.soy);
gotoxy(2,5);
write(‘Yeni numarayı gir ==>’); readln(sinif.numara);
gotoxy(2,6);
write(‘1. Matematik Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not1);
gotoxy(2,7);
write(‘2. Matematik Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not2);
gotoxy(2,8);
write(‘1. Fizik Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not1);
gotoxy(2,9);
write(‘2. Fizik Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not2);
gotoxy(2,10);
write(‘1. Kimya Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not1);
gotoxy(2,11);
write(‘2. Kimya Ders notunu giriniz ==>’);readln(sinif.dersler.mat.not2);
gotoxy(2,7);
write(dosya,sinif);
end
else begin
gotoxy(24,2);
write(‘Dosyada kayıt yok’);
end;
gotoxy(2,23);
writeln(‘ANA MENÜ:(E,H)’);
repeat
tus:=readkey;
until tus in[‘H’,’h’,’E’,’e’];
end;
until tus in [‘E’,’e’];
clrscr;
ciz;
end;
begin clrscr;
assign(dosya,’d:deneme.dat’);
ciz;
x:=30;y:=11;
repeat
repeat
gotoxy(23,9);
textcolor(15);
writeln(‘<===========M E N Ü============>’);
gotoxy(30,11);
writeln(‘1-Öğrenci girişi’);
gotoxy(30,12);
writeln(‘2-Listeleme’);
gotoxy(30,13);
writeln(‘3-Arama’);
gotoxy(30,14);
writeln(‘4-Kayıt Silme’);
gotoxy(30,15);
writeln(‘5-Kayıt Düzeltme’);
gotoxy(30,16);
writeln(‘6-Çıkış’);
gotoxy(30,17);
writeln(‘7-Telif Hakkı’);
gotoxy(x,y);
sec:=readkey;
if sec=’s’ then
y:=y+1;
if y=18 then
y:=11;
if sec=’w’ then
y:=y-1;
if y=10 then
y:=17;
until sec in[‘1′,’2′,’3′,’4′,’5′,’6′,’7’,#27,#13];
clrscr;
if sec=#13 then begin ciz1;
if y=11 then ogrenci_girisi
else if y=12 then listele
else if y=13 then arama
else if y=14 then kayit_silme
else if y=15 then duzeltme
else if y=16 then exit
else if y=17 then telif; end;
case sec of
‘1’: begin ciz1;ogrenci_girisi; end;
‘2’: begin ciz1;listele end;
‘3’: begin ciz1;arama; end;
‘4’: begin ciz1;kayit_silme; end;
‘5’: begin ciz1;duzeltme; end;
‘6’: begin exit; end;
‘7’: begin ciz1;telif; end;
end;
until tus=#27;
readln;
end.