//--------------------------------------------------------------------------- #include #include #include #include #pragma hdrstop #include "Unit2.h" #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void sozd(); void dobav(); void dobav_po_nom(); void prosm(); void udal_po_nom(); void udal_zap_o_prosr_tov(); void zamena(); void vivod_sved_o_tov_zad_proizv(); void udal_faila(); void copyall(); void vosst(); //структура struct Magazin { char nazv_tovara[15]; char cena[30]; char data_proizv[10]; char srok_godn[30]; char proizv[30]; char kolvo_ed_tovara[10]; char gruppa_tovara[30]; }mas; void __fastcall TForm2::Button1Click(TObject *Sender) { if (Form2->Tag==1 && Form2->Tag!=0) sozd(); if (Form2->Tag==2 && Form2->Tag!=0) dobav(); if (Form2->Tag==3 && Form2->Tag!=0) dobav_po_nom(); if (Form2->Tag==4 && Form2->Tag!=0) udal_po_nom(); if (Form2->Tag==5 && Form2->Tag!=0) udal_zap_o_prosr_tov(); if (Form2->Tag==6 && Form2->Tag!=0) zamena(); if (Form2->Tag==7 && Form2->Tag!=0) vivod_sved_o_tov_zad_proizv(); } //--------------------------------------------------------------------------- //создание файла void sozd() { FILE *p; p=fopen("magazin","wb"); strcpy(mas.nazv_tovara,Form2->Edit1->Text.c_str()); strcpy(mas.cena,Form2->Edit2->Text.c_str()); strcpy(mas.data_proizv,Form2->Edit3->Text.c_str()); strcpy(mas.srok_godn,Form2->Edit4->Text.c_str()); strcpy(mas.proizv,Form2->Edit5->Text.c_str()); strcpy(mas.kolvo_ed_tovara,Form2->Edit6->Text.c_str()); strcpy(mas.gruppa_tovara,Form2->Edit7->Text.c_str()); fwrite(&mas,sizeof(mas),1,p); Form1->Show(); } //добавление записей в конец void dobav() { FILE *p; p=fopen("magazin","ab"); strcpy(mas.nazv_tovara,Form2->Edit1->Text.c_str()); strcpy(mas.cena,Form2->Edit2->Text.c_str()); strcpy(mas.data_proizv,Form2->Edit3->Text.c_str()); strcpy(mas.srok_godn,Form2->Edit4->Text.c_str()); strcpy(mas.proizv,Form2->Edit5->Text.c_str()); strcpy(mas.kolvo_ed_tovara,Form2->Edit6->Text.c_str()); strcpy(mas.gruppa_tovara,Form2->Edit7->Text.c_str()); fwrite(&mas,sizeof(mas),1,p); fclose(p); Form1->Show(); } //добавление записей по номеру void dobav_po_nom() { int i,n; FILE *p1,*p2; n=StrToInt(Form2->Edit8->Text); p1=fopen("magazin","rb"); p2=fopen("fmagazin","wb"); for (i=0; iEdit1->Text.c_str()); strcpy(mas.cena,Form2->Edit2->Text.c_str()); strcpy(mas.data_proizv,Form2->Edit3->Text.c_str()); strcpy(mas.srok_godn,Form2->Edit4->Text.c_str()); strcpy(mas.proizv,Form2->Edit5->Text.c_str()); strcpy(mas.kolvo_ed_tovara,Form2->Edit6->Text.c_str()); strcpy(mas.gruppa_tovara,Form2->Edit7->Text.c_str()); fwrite(&mas,sizeof(mas),1,p2); while(fread(&mas,sizeof(mas),1,p1)!=0) fwrite(&mas,sizeof(mas),1,p2); fcloseall(); unlink("magazin"); rename("fmagazin","magazin"); Form1->Show(); } //просмотр всех записей void prosm() { int i,j; for (i=0; iStringGrid1->ColCount; i++) for (j=0; jStringGrid1->RowCount; j++) Form1->StringGrid1->Cells[i][j]=""; FILE *p; clrscr(); p=fopen("magazin","rb"); i=0; Form1->StringGrid1->Visible=true; Form1->StringGrid1->Cells[0][0]="Название товара"; Form1->StringGrid1->Cells[1][0]="Цена"; Form1->StringGrid1->Cells[2][0]="Дата производства"; Form1->StringGrid1->Cells[3][0]="Срок годности"; Form1->StringGrid1->Cells[4][0]="Производитель"; Form1->StringGrid1->Cells[5][0]="Количество единиц товара в магазине"; Form1->StringGrid1->Cells[6][0]="Товарная группа"; while (fread(&mas,sizeof(mas),1,p)!=0) { i++; Form1->StringGrid1->Cells[0][i]=mas.nazv_tovara; Form1->StringGrid1->Cells[1][i]=mas.cena; Form1->StringGrid1->Cells[2][i]=mas.data_proizv; if (Form1->StringGrid1->Cells[2][i].Length()>10) Form1->StringGrid1->Cells[2][i]=Form1->StringGrid1->Cells[2][i].SubString(1,10); Form1->StringGrid1->Cells[3][i]=mas.srok_godn; Form1->StringGrid1->Cells[4][i]=mas.proizv; Form1->StringGrid1->Cells[5][i]=mas.kolvo_ed_tovara; Form1->StringGrid1->Cells[6][i]=mas.gruppa_tovara; Form1->StringGrid1->RowCount=i+1; } fclose(p); } //удаление записей по номеру void udal_po_nom() { int i,N,n; FILE *p1,*p2; n=StrToInt(Form2->Edit8->Text); p1=fopen("magazin","rb"); N=0; while(fread(&mas,sizeof(mas),1,p1)!=0) N++; fseek(p1,0,0); p2=fopen("fmagazin","wb"); if (n<=N) { for (i=0; iShow(); return; } else MessageDlg("Нет записей с таким номером",mtWarning,TMsgDlgButtons()<Show(); } //удаление записей о просроченных товарах void udal_zap_o_prosr_tov() { char srok_godnn[30]; int k,pr=0,i; FILE *p1,*p2; clrscr(); strcpy(srok_godnn,Form2->Edit8->Text.c_str()); p1=fopen("magazin","rb"); p2=fopen("fmagazin","wb"); while(fread(&mas,sizeof(mas),1,p1)!=0) { if(strcmp(mas.srok_godn,srok_godnn)!=0) { fwrite(&mas,sizeof(mas),1,p2); } else pr=1; } fcloseall(); if(pr==0) MessageDlg("Нет записей о просроченных товарах",mtWarning,TMsgDlgButtons()<Show(); } //замена(изменение) цены на товары заданной товарной группы void zamena() { FILE *p1,*p2; int i,pr=0; char ccena[30]; clrscr(); strcpy(ccena,Form2->Edit8->Text.c_str()); p1=fopen("magazin","rb"); p2=fopen("fmagazin","wb"); while(fread(&mas,sizeof(mas),1,p1)!=0) { if(strcmp(mas.cena,ccena)==0) { strcpy(mas.gruppa_tovara,Form2->Edit8->Text.c_str()); pr=1; } fwrite(&mas,sizeof(mas),1,p2); } fcloseall(); if(pr==0) MessageDlg("Нет записей с такой товарной группой",mtWarning,TMsgDlgButtons()<Show(); } //Вывод сведений о товарах заданного производителя void vivod_sved_o_tov_zad_proizv() { char proizvv[30]; int i,j; for (i=0; iStringGrid1->ColCount; i++) for (j=0; jStringGrid1->RowCount; j++) Form1->StringGrid1->Cells[i][j]=""; i=0; strcpy(proizvv,Form2->Edit8->Text.c_str()); int pr=-1; FILE *p1; p1=fopen("magazin","rb"); Form1->StringGrid1->Cells[0][0]="Название товара"; Form1->StringGrid1->Cells[1][0]="Цена"; Form1->StringGrid1->Cells[2][0]="Дата производства"; Form1->StringGrid1->Cells[3][0]="Срок годности"; Form1->StringGrid1->Cells[4][0]="Производитель"; Form1->StringGrid1->Cells[5][0]="Количество единиц товара в магазине "; Form1->StringGrid1->Cells[6][0]="Товарная группа"; while(fread(&mas,sizeof(mas),1,p1)!=0) if (strcmp(mas.proizv,proizvv)==0) { pr=1; i++; Form1->StringGrid1->Cells[0][i]=mas.nazv_tovara; Form1->StringGrid1->Cells[1][i]=mas.cena; Form1->StringGrid1->Cells[2][i]=mas.data_proizv; if (Form1->StringGrid1->Cells[2][i].Length()>10) Form1->StringGrid1->Cells[2][i]=Form1->StringGrid1->Cells[2][i].SubString(1,10); Form1->StringGrid1->Cells[3][i]=mas.srok_godn; Form1->StringGrid1->Cells[4][i]=mas.proizv; Form1->StringGrid1->Cells[5][i]=mas.kolvo_ed_tovara; Form1->StringGrid1->Cells[6][i]=mas.gruppa_tovara; Form1->StringGrid1->RowCount=i+1; Form1->StringGrid1->Visible=true; } fclose(p1); if (pr==(-1)) { MessageDlg("Нет записей о товарах этого производителя",mtWarning,TMsgDlgButtons()<StringGrid1->Visible=false; } Form1->Show(); } //удаление файла void udal() { int pr; pr=MessageDlg("Подтвердите удаление файла",mtWarning,TMsgDlgButtons()<