-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgrf_reader.h
More file actions
109 lines (104 loc) · 2.22 KB
/
grf_reader.h
File metadata and controls
109 lines (104 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#ifndef GRF_READER_H
#define GRF_READER_H
#include "data.h"
#include <QByteArray>
#include <QDataStream>
#include <QFile>
#include <QObject>
#include <QTextCodec>
#include <QVector>
#define MAX_RECS 100
/**
* @brief st_record struct Структура для описывания единицы записи, хранищейся
* в файле *.grf.
*/
template <typename T> struct st_record {
/*!
* \brief r указатель на запись
*/
T *r;
/*!
* \brief currency_array массив токов
*/
QVector<quint16> *currency_array;
/*!
* \brief speed_array массив скоростей
*/
QVector<quint16> *speed_array;
};
/**
* @brief GRF_Reader class Структура данных, для описывания свойств и методов
* для работы с файла *.grf
*/
class GRF_Reader {
public:
GRF_Reader(QString &file_name); /// Конструктор класса
~GRF_Reader();
void SetParentWidgetPointer(void *w);
/*!
* \brief BeginReading Начать чтение файла отгрузки
*/
void BeginReading(void *w);
/*!
* \brief ReadRecord Читать одну запись
* \param r Указатель на объект записи типа Record
*/
void ReadRecord(st_record<Record> *r);
/*!
* \brief ReadRecord Читать одну запись
* \param r Указатель на объект записи типа NewRecord
*/
void ReadRecord(st_record<NewRecord> *r);
/*!
* \brief ReadRecord Читать одну запись
* \param r Указатель на объект записи типа OldRecord
*/
void ReadRecord(st_record<OldRecord> *r);
private:
/*!
* Массив записей типа Record
*/
st_record<Record> *recs;
/*!
* Массив записей типа NewRecord
*/
st_record<NewRecord> *newrecs;
/*!
* Массив записей типа OldRecord
*/
st_record<OldRecord> *oldrecs;
/*!
* Указатель на объект файла
*/
QFile *grf_fil;
/*!
* Признак наличия ошибки
*/
bool error_flag;
/*!
* Указатель на объект родительского окна
*/
void *parent_wdg_ptr;
/*!
* Указатель на буфер файла в памяти
*/
QByteArray *memfile;
/*!
* Указатель на объект потокового ввода/вывода
*/
QDataStream *stream;
/*!
* Количество записей
*/
quint16 record_count;
/*!
* Тип записей
*/
quint16 records_type;
/*!
* Указатель на объект кодировки Windows-1251.
* Используется для преобразования в Unicode.
*/
QTextCodec *utf_codec;
};
#endif // GRF_READER_H