C ile Dosya İşlemleri

C-File

Yazılımla ilgiliyseniz illaki bir gün bir yerde karşınıza bu tarz bi uygulama çıkacaktır.Bende gerektiğinde işinize yaraması açısından birinci sınıftayken yaptığım basit manada öğrenci kayıtlarının bir txt dosyasında tutulup üzerinde arama, silme , düzenleme gibi işlemlerin yapıldığı bir uygulamayı sizlerle paylaşmak istiyorum.

#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
#include"string.h"
#include"io.h"

struct ogrenci{
char k;
char adsoyad[20];
char fakulte[25];
char num[1000];
char bolum[15];
char devam[3];
char veli[15];

} ogrkay;

FILE *dosya;
char cev;
int i,say,kaysay;
char c;
char ara[10];

int ksay(void)
{
return (filelength(fileno(dosya))/sizeof(struct ogrenci));
}

void giris(void)
{
clrscr();
printf("Numara     :");gets(ogrkay.num);
printf("Ad Soyadý:");gets(ogrkay.adsoyad);
printf("Fakulte     :");gets(ogrkay.fakulte);
printf("Bolumu     :");gets(ogrkay.bolum);
printf("Devansýzlýk:");gets(ogrkay.devam);
printf("Veli ismi:");gets(ogrkay.veli);
printf("Girilen Bilgiler Dogru mu? [E/H]");
cev=getch();
if (cev=='E' || cev=='e') {
ogrkay.k='*';
fseek(dosya, filelength(fileno(dosya)), SEEK_SET);
fwrite(&ogrkay,sizeof(struct ogrenci),1,dosya);
flushall();
}
}

void baslik(void)
{
clrscr();
printf("%-10s %-10s %-15s %15s %15s %10s \n\n","NUMARA","AD SOYAD","FAKULTE","BOLUM","DEVAMSIZLIK","VELI");
say=0;
}

void listele(void)
{
baslik();
kaysay=ksay();
for(i=0;i<kaysay;i++){
fseek(dosya,i*sizeof(struct ogrenci),SEEK_SET);
fread(&ogrkay,sizeof(struct ogrenci),1,dosya);
if(ogrkay.k=='*'){
say=say+1;
printf("%s\t",ogrkay.num);
printf("%s\t",ogrkay.adsoyad);
printf("%s\t",ogrkay.fakulte);
printf("%s\t",ogrkay.bolum);
printf("%s\t",ogrkay.devam);
printf("%s\n",ogrkay.veli);

if (say==20) {
printf("Diðer Sayfa Ýçin Bir Tuþa Basýnýz...");
getch();baslik();
}
}
}
printf("Listelenecek Kayýtlar Bitti...");
getch();
}

int arama(void)
{
clrscr();
printf("Aranan öðrenci numarasi :");gets(ara);
flushall();
for (i=0;i<ksay();i++) {
fseek(dosya,i*sizeof(struct ogrenci),SEEK_SET);
fread(&ogrkay,sizeof(struct ogrenci),1,dosya);
if (strcmp(ara,ogrkay.num)==0 && ogrkay.k=='*'){
clrscr();
printf("Numara    :%s\n",ogrkay.num);
printf("Ad soyad:%s\n",ogrkay.adsoyad);
printf("Fakulte    :%s\n",ogrkay.fakulte);
printf("Bolum    :%s\n",ogrkay.bolum);
printf("Devamsýzlýk:%s\n",ogrkay.devam);
printf("Veli    :%s\n",ogrkay.veli);
printf("\nÇýkmak için bir tuþa basiniz...");
getch(); return 0;
}
}
printf("Aranan Kayit Bulunamadý...\n");
getch();
return 0;
}
int silme(void)
{
clrscr();
printf("Silinecek ögrenci numarasi:");gets(ara);
kaysay=ksay();
for (i=0;i<kaysay;i++) {

fseek(dosya,i*sizeof(struct ogrenci),SEEK_SET);
fread(&ogrkay,sizeof(struct ogrenci),1,dosya);

if (strcmp(ara,ogrkay.num)==0 && ogrkay.k=='*'){
clrscr();
printf("Numara :%s\n",ogrkay.num);
printf("Ad soyad:%s\n",ogrkay.adsoyad);
printf("Fakulte    :%s\n",ogrkay.fakulte);
printf("Bolum    :%s\n",ogrkay.bolum);
printf("\nSilmek istiyor musunuz [E/H]");
cev=getch();
if (cev=='E' || cev=='e'){
ogrkay.k='s';
fseek(dosya,i*sizeof(struct ogrenci),SEEK_SET);
fwrite(&ogrkay,sizeof(struct ogrenci),1,dosya);
flushall();
printf("kayit silindi...");getch();
return 0;

}
}
}
printf("Silinecek kayit bulunamadi...\n");
getch();
return 0;
}

int duzelt(void)
{
clrscr();
printf("Düzeltilecek ogrenci numarasý :");gets(ara);
kaysay=ksay();
for(i=0;i<kaysay;i++){

fseek(dosya,i*sizeof(struct ogrenci),SEEK_SET);
fread(&ogrkay,sizeof(struct ogrenci),1,dosya);

if (strcmp(ara,ogrkay.num)==0 && ogrkay.k=='*') {
do {
clrscr();
printf("1-Numara    :%s\n",ogrkay.num);
printf("2-Ad Soyad    :%s\n",ogrkay.adsoyad);
printf("3-Fakulte    :%s\n",ogrkay.fakulte);
printf("4-Bolum        :%s\n",ogrkay.bolum);
printf("5-Devamsýzlýk:%s\n",ogrkay.devam);
printf("6-Veli        :%s\n",ogrkay.veli);
printf("7-Kayýt-Çýkýþ\n");

printf("Seciminiz [1-7] :");
cev=getch();
printf("\n");
switch (cev) {
case '1': printf("Yeni Numara :");
gets(ogrkay.num); break;
case '2' :printf("Yeni Ad Soyad :");
gets(ogrkay.adsoyad);break;
case '3' :printf("Yeni Fakulte    :");
gets(ogrkay.fakulte); break;
case '4' :printf("Yeni Bolum    :");
gets(ogrkay.bolum); break;
case '5' :printf("Yeni Devamsýzlýk:");
gets(ogrkay.devam);break;
case '6' :printf("Yeni Veli        :");
gets(ogrkay.veli);break;

}
}while (cev!='7');

fseek(dosya,i*sizeof(struct ogrenci),SEEK_SET);
fread(&ogrkay,sizeof(struct ogrenci),1,dosya);
flushall();
printf("Kayit Düzeltildi...");getch();
return 0;
}
}
printf("Duzeltilecek Kayit Bulunamadi...\n");
getch();
return 0;
}

void main()
{
dosya=fopen("Ogrenci.dat","r+b");
if (dosya==NULL) {
dosya=fopen("Ogrenci.dat","w+b");
}
textbackground(1);textcolor(14);
do {
clrscr();
gotoxy(25,8);printf("1-Bilgi Girisi");
gotoxy(25,9);printf("2-Bilgi Arama");
gotoxy(25,10);printf("3-Bilgi Listeleme");
gotoxy(25,11);printf("4-Bilgi Silme");
gotoxy(25,12);printf("5-Bilgi Düzeltme");
gotoxy(25,13);printf("6-Program Sonu");
gotoxy(25,15);printf("Seçimimiz(1-6)");
c=getch();
if (c=='1') giris();
if (c=='2') arama();
if (c=='3') listele();
if (c=='4') silme();
if (c=='5') duzelt();

}while (c!='6');
fclose(dosya);
}

About this entry