// // Модуль: заголовочный файл для процедур работы с файлами // Компилятор: Microsoft Visual C++ v6.0 // Ревизия: от 5 июня 2003 года // Разработчик: Вячеслав Овсиенко (VSO) vslav_ov@ukr.net, vslav_ov@yahoo.com // // // 20 августа 2002 // Написан первый код // // 5 июня 2003 // Добавлена поддержка формата Intel-Hex (Extended) // // #ifndef __FILEIO_H__ #define __FILEIO_H__ #define FL_ERR_SUCCESS 0x00000000L // все прошло успешно #define FL_ERR_WRITE 0xFF000100L // ошибка записи файла #define FL_BUFSIZE 0x4000 // размер буфера файла #define FL_LINSIZE 4096 // максимальная длина строки // в байтах включая конечный нуль #define FLFLG_ForWrite 0x01 // файл открыт для записи typedef struct _FHANDLE { // // Сейчас предполагается однопоточная модель, при многопоточной // модели в эту структуру можно добавить объекты синхронизации // int Handle; // хендл открытого файла PBYTE Ptr; // текущий указатель данных PBYTE End; // конец порции данных в буфере DWORD Size; // размер буфера в байтах DWORD Flags; // флажки открытого файла BYTE Data[1]; // собственно данные буфера } FHANDLE, *PFHANDLE; // // Открывает указанный файл исключительно для чтения // Возвращает открытый хендл или NULL в случае ошибки // При открытии специфицируется размер буфера для чтения // PFHANDLE FL_Open(char* Name, DWORD BufSize); // // Открывает указанный файл исключительно для записи // Возвращает открытый хендл или NULL в случае ошибки // При открытии специфицируется размер буфера для записи // PFHANDLE FL_Create(char* Name, DWORD BufSize); // // Производит чтение строки из входного файла длиной // не более FL_LINSIZE (включая завершающий нуль) // int FL_ReadLine(PFHANDLE File, PBYTE Data); // // Производит запись строки из указанного буфера // int FL_WriteLine(PFHANDLE File, PBYTE Data); // // Производит запись данных из буфера на диск, в случае // ошибки выводит сообщение возвращает ненулевое значение // DWORD FL_Flush(PFHANDLE File); // // Функция закрытия открытого файла, если файл был открыт // на запись, то происходит запись отставшихся данных на диск, // также освобождается память, выделенная для буфера // void FL_Close(PFHANDLE File); #endif __FILEIO_H__