Guys pahelp Naman po pamodify po nitong code na ginawa ko kasi everytime po na magdedelete po ako ng record, nadedelete po lahat eh dapat Isa Lang po and madelete, may Mali po ata sa source code ng delete guys, Pwede po ba patulong? Turbo c++ po ang gamit namin. Salamat po
C++:
void creatf();
void dispf();
void searchf();
void fdelete();
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<io.h>
#include<string.h>
typedef struct info
{
char id[5];
char name[30];
float gpa;
}info;
info record[100];
int fp, amode, permission;
int v;
char av;
char d_gpa[5];
char find_id[5];
char sel;
main()
{
do
{
clrscr();
printf("MAIN MENU \n\n");
printf("1. Create File \n");
printf("2. Display File \n");
printf("3. Search File \n");
printf("4. EXIT \n\n");
printf("Please select: ");
sel=getche();
switch(sel)
{
case '1':
clrscr();
creatf();
getche();
break;
case '2':
clrscr();
dispf();
getche();
break;
case '3':
clrscr();
searchf();
getche();
break;
case '4':
clrscr();
fdelete();
getche();
break;
case '5' :
getche();
break;
}
}while(sel!='5');
getche();
}
//------- begin -------
void creatf()
{
clrscr();
amode=O_RDWR|O_CREAT|O_TRUNC|O_TEXT;
permission=S_IREAD|S_IWRITE;
fp=open("write.txt", amode, permission);
if(fp!=NULL)
{
v=0;
do
{
clrscr();
printf("Enter ID: ");
gets(record[v].id);
fflush(stdin);
printf("Enter Name: ");
gets(record[v].name);
fflush(stdin);
printf("Enter GPA: ");
fgets(d_gpa, sizeof(d_gpa), stdin);
record[v].gpa=atof(d_gpa);
printf("Do you want to continue? [Y/N]: ");
av=getche();
fflush(stdin);
write(fp, &record, sizeof(record));
v++;
}while((av!='N')&&(av!='n'));
}
else
{
printf("Can't open file");
getche();
}
close(fp);
getche();
}
//------- end -------
//------- begin -------
void dispf()
{
v=0;
clrscr();
gotoxy(27,1);printf("Displaying the records \n\n");
gotoxy(1,4); printf("ID");
gotoxy(11,4); printf("Name");
gotoxy(41,4); printf("GPA");
fp=open("write.txt",O_RDONLY|O_TEXT);
while(!eof(fp))
{
read(fp,&record,sizeof(record));
gotoxy(1,5+v); printf("%s", record[v].id);
gotoxy(11,5+v); printf("%s", record[v].name);
sprintf(d_gpa,"%.2f",record[v].gpa);
gotoxy(41,5+v); printf("%s", d_gpa);
v++;
}
gotoxy(27,20); printf("Nothing follows!!!");
close(fp);
getche();
}
//------- end -------
//------- begin -------
void searchf()
{
v=0;
clrscr();
printf("Search From The Master File \n\n");
printf("Type ID to search: ");
gets(find_id);
amode= O_RDONLY|O_TEXT;
fp=open("write.txt", amode);
while(!eof(fp))
{
read(fp, &record, sizeof(record));
if(((strcmp(find_id, record[v].id))==0))
{
clrscr();
gotoxy(6,5); printf("ID");
gotoxy(16,5); printf("Name");
gotoxy(42,5); printf("GPA");
gotoxy(6,7); printf("%s", record[v].id);
gotoxy(16,7); printf("%s", record[v].name);
sprintf(d_gpa, "%.2f", record[v].gpa);
gotoxy(42,7); printf("%s", d_gpa);
break;
}
else
{
clrscr();
printf("No Records Found");
}
v++;
}
close(fp);
getche();
}
//------- end -------
//-------begin------
void fdelete()
{
int c;
printf("VIEW RECORD\n\n");
FILE *fp, *ft;
fp=fopen("write.txt","r");
ft=fopen("Temp.dat","w");
printf("\nEnter item code to delete:");
gets(record[v].id);
rewind(fp);
if(fp)
{
while((c=fgetc(view))!=EOF)
putchar(c);
printf("\n\nSuccessully Deleted.");
fclose(fp);
fclose(ft);
remove("write.txt");
rename("Temp.dat","write.txt");
}
//------end-----
Last edited: