Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2013, 18:17   #1
bosyak
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 29
Печаль пожалуйста помогите с редактированием

пишу на borland c++ 3.1
Дело в том что редактируется только 1 запись типа:
печкин 1300 товар
печугин 1500 товар
отредактируется только печкин 1300 товар помогите сделать так чтобы отредактировались все записи
ах да еще необходимо провернуть все без массива
вот отрезок моей подпрограммы:
Код:
void per()
{  FILE *fz,*ft,*fs,*fd;
int flag,v,c=1,i=1;
long int kol;
long client_num;
   char buf[256],cp[13];
   clrscr();
   if ((ft=fopen("skidki.dat","r+b"))==0) {cout<<endl<<"Недостаточно информации, пожалуйста\nзаполните файл скидок для продолжения!";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("skidki.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);
}

Последний раз редактировалось bosyak; 12.11.2013 в 18:23. Причина: правила форума
bosyak вне форума Ответить с цитированием
Старый 12.11.2013, 18:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что значит "редактировать"? В каком смысле?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 18:39   #3
bosyak
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 29
По умолчанию

если в дополнительных файлах изменилась какая то информация то она должна изменится и в основном(автоматически)

типа пересчитать данные

Последний раз редактировалось Stilet; 12.11.2013 в 19:15.
bosyak вне форума Ответить с цитированием
Старый 12.11.2013, 19:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну и какие данные нужно пересчитывать? Какова структура файла?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 19:27   #5
bosyak
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 29
По умолчанию

только цену
а вот структура
Код:
struct magaz//структура основного файла
       { char fio[13];
       char tal[6] ;
       char naz[15] ;
       char dost[10];
	float st,d,m,g,skid;

	}mag;
//структуры дополнительных файлов
	struct dost
	{ float st_s;
	float st_k;
	float st_p;
	float cdost;
	}dos;
	struct skidki
	{  	float d_n,m_n,g_n,d_k,m_k,g_k,proc;
	}ski;
	 struct tovari
	 { char nazv[15];
	   float zena;
	   }tov;
bosyak вне форума Ответить с цитированием
Старый 12.11.2013, 19:58   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Т.е. нужно в файле товаров сделать переоценку?
Ладно.
Код:
void pereozenka(){
 FILE* f=fopen("tov.dat","r+b");
 tovari t;
 for(fread(&t,sizeof(t),1,f);!feof(f);fread(&t,sizeof(t),1,f)){
  t.zena+=100;
  fseek(f,-sizeof(t),SEEK_SET);
  fwrite(&t,sizeof(t),1,f)
 } 
 flose(f);
}
Увеличивает стоимость всего товара на 100 уе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 20:14   #7
bosyak
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 29
По умолчанию

у меня насоздовала много других записей
вот:

я ничего не менял покаместь , просто хотел проверить, а она...

Последний раз редактировалось bosyak; 12.11.2013 в 20:16.
bosyak вне форума Ответить с цитированием
Старый 12.11.2013, 21:04   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тогда бери отладчик и проходись пошаговкой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2013, 21:07   #9
bosyak
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 29
По умолчанию

дело в том что она вообще ничего не изменила просто на добавляла кучу пустых записей)
bosyak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с редактированием записи таблицы. p.majorov БД в Delphi 4 15.11.2010 13:25
Объединение листов с предварительным редактированием prettyfly Microsoft Office Excel 6 12.11.2010 16:58
Побайтовое чтение с редактированием DedBoroda Общие вопросы Delphi 1 22.10.2010 02:48
Помогите с редактированием! kotre Microsoft Office Excel 4 25.05.2009 11:47
Форум PHPbb 3 помогите с редактированием формы опроса Python PHP 0 18.11.2008 00:14