Тема: допоможіть з редагуванням
ця підпрограмма редагує тільки 1 запис а інші не торкається
допоможіть мені це полагодити
на приклад:
товар ціна
lg 1300
samsung 3000
відредагується тільки lg та 1300
void per()
{ FILE *fz,*ft,*fs,*fd;
int flag,v,c=1,i=1;
long int kol;
char buf[256],cp[13];
clrscr();
if ((ft=fopen("skidki.dat","r+b"))==0) {cout<<endl<<"недостатньо інформаціі";getch();}
else if((fs=fopen("tov.dat","r+b"))==NULL) {cout<<endl<<"недостатньо інформаціі";getch();}
else if((fz=fopen("zakazi.dat","r+b"))==NULL) {cout<<endl<<"недостатньо інформаціі";getch();}
else if((fd=fopen("dost.dat","r+b"))==NULL) {cout<<endl<<"недостатньо інформаціі";getch();}
else
{
fclose(ft);
fclose(fs);
fclose(fd);
fclose(fz);
fz=fopen("zakazi.dat","r+b");
ft=fopen("znuwku.dat","rb");
fs=fopen("tov.dat","rb");
fd=fopen("dost.dat","rb");
kol=sizeof(mag);
fread(&mag,sizeof(mag),1,fz);
fread(&tov,sizeof(tov),1,fs);
while(!feof(fz))
{
rewind(fs);
fread(&tov,sizeof(tov),1,fs);
while(!feof(fs))
{
if (strcmp(tov.nazv,mag.naz)==0) {
mag.st=tov.zena;
}
fread(&tov,sizeof(tov),1,fs);
}
fd=fopen("dost.dat","rb");
fread(&dos,sizeof(dos),1,fd);
if (strcmp(mag.dost,"курьєр")==0)
{
mag.st=mag.st+dos.st_k;
}
else if (strcmp(mag.dost,"пошта")==0)
{
mag.st=mag.st+dos.st_p;
}
else {
mag.st=mag.st+dos.st_s;
}
rewind(ft);
fread(&ski,sizeof(ski),1,ft);
while(!feof(ft))
{
if((mag.d>=ski.d_n)&&(mag.d<=ski.d_k)) flag=1;
if ((mag.m>=ski.m_n)&&(mag.m<ski.m_k)) flag=1;
if ((mag.g>=ski.g_n)&&(mag.g<=ski.g_k)) flag=1;
if (flag) { mag.skid=ski.proc;
}
fread(&ski,sizeof(ski),1,ft);
}
if (strcmp(mag.tal,"є")==0) flag=1;
else { flag=0; mag.st=mag.st-(mag.st/100)*mag.skid;}
if (flag) {
if (flag) mag.st=mag.st-(mag.st/100)*5;
}
fseek(fz,-kol,1);
fwrite(&mag,sizeof(mag),1,fz);
fread(&mag,sizeof(mag),1,fz);
}
}
fclose(fz);
fclose(fd);
fclose(ft);
fclose(fs);
}