fclose (file);
}
void WDisk::Restore()//читання бази данних з файла
{
FILE *file = fopen (File_Name,"r");
if (file)
{
CRecord buf_record;
char *buf_str = new char [200];
int ch(1);
int i(0);
while (ch)
{
ReadWord (file,ch,buf_str,i);
*(buf_str + i - 1) = '\0';
buf_record.record.CS_Surname = buf_str;
i = 0;
if (ch)
ch = 1;
ReadWord (file,ch,buf_str,i);
*(buf_str + i - 1) = '\0';
buf_record.record.CS_Name = buf_str;
i = 0;
if (ch)
ch = 1;
ReadWord (file,ch,buf_str,i);
*(buf_str + i - 1) = '\0';
buf_record.record.CS_Patronymic = buf_str;
i = 0;
if (ch)
ch = 1;
ReadWord (file,ch,buf_str,i);
*(buf_str + i - 1) = '\0';
buf_record.record.CS_Post = buf_str;
i = 0;
if (ch)
ch = 1;
ReadWord (file,ch,buf_str,i);
*(buf_str + i - 1) = '\0';
buf_record.record.i_LengthOfService = atoi (buf_str);
i = 0;
if (ch)
ch = 1;
ReadWord (file,ch,buf_str,i);
*(buf_str + i - 1) = '\0';
buf_record.record.i_RateOfPay = atoi (buf_str);
i = 0;
if (ch)
ch = 1;
if (!ch)
break;
AddRecord (buf_record);
}
fclose (file);
delete []buf_str;
}
else
{
cout << "Can't open file";
}
}
void WDisk::ReadWord(FILE *file,int &ch,char *buf_str,int &index)//читання слова з файла
{
while (ch != '\n' && ch)
{
ch = getc(file);
if (feof(file))
ch = 0;
*(buf_str + index) =(char) ch;
index++;
}
}
//основна програма
int main(int argc, char* argv[])
{
Display f;
int ch (0);
ch = getch ();
while ( ch != 'q')
{
switch (ch)
{
case '1':
{
f.OutData();
break;
}
case '2':
{
cout << "Enter field of new record";
f.AddNRecord();
f.OutData();
break;
}
case '3':
{
cout << "Enter number of field - ";
f.DelNRecord((getch() - 48));
f.OutData();
break;
}
case '4':
{
f.sort();
f.OutData();
break;
}
case '5':
{
f.Save();
break;
}
case '6':
{
f.DelAll();
f.Restore();
f.OutData();
break;
}
case '7':
{
f.DelAll();
f.OutData();
break;
}
case '8':
{
int num(0);
cout << "Enter a Number" << endl;
cin >> num;
gotoxy (wherex(),(wherey() - 1));
f.Insert(--num);
f.OutData();
break;
}
case '9':
{
int num(0);
cout << "Enter a Number" << endl;
cin >> num;
gotoxy (wherex(),(wherey() - 1));
f.Edit(num);
f.OutData();
break;
}
default: break;
}
ch = getch();
}
return 0;
}
Результат роботи програми:
>4
Surname Name Patronimyc Post LengthOfService RateOfPay
Lyh Vit xxx lk 1 1
Epan Max xxx w 2 4
Kosenko MaX SD Z 5 1
Bezr Les xxx w 52 4
Storoz Serg xxx df 4 1
Pant Lex xxx hg 3 4
1-print 2-AddNRecord 3-DeleteNRecord 4-Sort 5-Save 6-Restor 7-DelAll
8-Insert 9-Edit q-exit
>7
Surname Name Patronimyc Post LengthOfService RateOfPay
Bezr Les xxx w 52 4
Epan Max xxx w 2 4
Kosenko MaX SD Z 5 1
Lyh Vit xxx lk 1 1
Pant Lex xxx hg 3 4
Storoz Serg xxx df 4 1
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.