#include <windows.h>
struct GOODS { //Структура, описывающая изделия на складе
int Nmb; //Номер изделия
int Price; //Цена изделия
};
const int N = 1000;//Пусть на складе тысяча образцов изделий
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
GOODS Stock[N]; //Создадим в памяти массив для всех изделий
GOODS Unit1, Unit2;//Структурные переменные для двух изделий
DWORD dwCount;//Для функций чтения/записи
for (int i = 0; i < N; i++)
{//Заполним массив структур
Stock[i].Nmb = i + 1;//тестовыми данными
Stock[i].Price = (i + 1) + 20;
}
HANDLE hFile = CreateFile("stock.dat", GENERIC_READ | GENERIC_WRITE,
0, NULL, CREATE_ALWAYS, 0, NULL);
/*Запишем весь массив а фалл*/
WriteFile(hFile, Stock, sizeof(Stock), &dwCount, NULL);
/*Сместим указатель н прочитаем последнюю запись файла */
SetFilePointer(hFile, sizeof(GOODS) * (N - 1), NULL, FILE_BEGIN);
ReadFile(hFile, &Unit1, sizeof(GOODS), &dwCount, NULL);
/*Закроем файл, откроем снова и прочитаем первую запись файла */
CloseHandle(hFile);
hFile = CreateFile("stock.dat", GENERIC_READ, 0, NULL, OPEN_EXISTING,
0, NULL);
ReadFile(hFile, &Unit2, sizeof(GOODS), &dwCount, NULL);
/*Вывлдем прочитанное в окно сообщения*/
char szT[200];
wsprintf(szT, "День № %d\n %d рублей\n-------------\n"
"День № %d\n %d рублей",
Unit1.Nmb, Unit1.Price, Unit2.Nmb, Unit2.Price);
MessageBox(NULL, szT, "Info", MB_OK);
CloseHandle(hFile);//Закроем для порядка файл
return 0;
}