last
unknown
c_cpp
6 months ago
2.0 kB
1
Indexable
Never
#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; }