Форум программистов, компьютерный форум CyberForum.ru

Как лучше организовать данные - C++

Восстановить пароль Регистрация
 
ГрОзНаЯ ФуСяКа
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 6
18.11.2012, 11:14     Как лучше организовать данные #1
Добрый день.
Создаю класс CError для хранения в нём ошибок. От класса требуется хранить информацию о всех возникающих в процессе работы программы ошибках. Т.е. в функции возникла некритическая ошибка, вместо вывода её прям на месте, мы сохраняем её например таким образом:
err.Set("Имя функции", REP_ERR_NO_DATA_IN_AE_MODEL, 1);
В подробности вдаваться не будем. Загвоздка возникла в вопросе о том, как хранить информацию о популярных ошибках. Т.е. я хочу иметь статический список ошибок, чтобы выглядел он примерно так:

{REP_ERR_NO_DATA_IN_AE_MODEL, "Нет данных", "Не нашли данных в AE_MODEL"},
{REP_ERR_NO_DATA_IN_AE_INDEX, "Нет данных", "Не нашли данных в AE_INDEX"},
{REP_ERR_NO_TABLE_AE_PARAMETR, "Отсутствует таблица", "В БД отсутствует таблица AE_PARAMETR"},
...

Каким образом лучше хранить эту информацию? 3 массива - как-то не красиво. Перечисления....тоже как-то не очень... Что можете посоветовать?

Вот описание класса:
typedef struct
{
long lCode ;
char szFunkName[256];
char szUserMsg[512] ;
char szDebugMsg[512];
}ST_ERROR_INFO;

class CError
{
public:
CError(CWnd* pParent = NULL); // standard constructor
void Set(char* pErrFunkName, long lErrCode, int iOut);
void Set(char* pErrFunkName, long lErrCode );
void Set(char* pErrFunkName, string strErrMsg, int iOut);
void Set(char* pErrFunkName, string strErrMsg );
void Set(char* pErrFunkName, string strErrUserMsg, string strErrDebugMsg, int iOut);
void Set(char* pErrFunkName, string strErrUserMsg, string strErrDebugMsg );

const long GetLastErrCode ();
const string* GetLastErrMsg ();
const string* GetLastErrUserMsg ();
const string* GetLastErrDebugMsg();

private:
long lMaxInd ;
ST_ERROR_INFO *pErrInfo;

short realloc_mem();
};

Добавлено через 13 минут
Может массив структур? А как это реализовать? Можно пример?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2012, 11:14     Как лучше организовать данные
Посмотрите здесь:

C++ как организовать ?
как организовать конвейер C++
C++ Как организовать меню..в Си...
Как организовать цикл? C++
C++ Организовать данные в виде линейного списка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ГрОзНаЯ ФуСяКа
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 6
21.11.2012, 10:09  [ТС]     Как лучше организовать данные #2
Спасибо большое за помощь.

Добавлено через 15 секунд
Спасибо большое за помощь.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11830 / 6809 / 769
Регистрация: 27.09.2012
Сообщений: 16,883
Записей в блоге: 2
Завершенные тесты: 1
21.11.2012, 10:17     Как лучше организовать данные #3

Не по теме:

Цитата Сообщение от ГрОзНаЯ ФуСяКа Посмотреть сообщение
Спасибо большое за помощь.
Не за что! Как раз в тему ответ


Не по теме:

Когда же все научатся обрамлять код тегами???



Цитата Сообщение от ГрОзНаЯ ФуСяКа Посмотреть сообщение
Может массив структур?
Именно!
Цитата Сообщение от ГрОзНаЯ ФуСяКа Посмотреть сообщение
А как это реализовать?
Взять книжку и почитать что такое структуры и с чем их лучше готовить.
Цитата Сообщение от ГрОзНаЯ ФуСяКа Посмотреть сообщение
Можно пример?
Лично я не вижу смысла от примера, но:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define REP_ERR_NO_DATA_IN_AE_MODEL 0
class MS{
   char message1[128];
   char message2[128];
public:
//...
};
//...
int main(){
   //...
   MS arr[100];
   arr[REP_ERR_NO_DATA_IN_AE_MODEL];
   //...
}
ГрОзНаЯ ФуСяКа
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 6
21.11.2012, 13:23  [ТС]     Как лучше организовать данные #4
Вот теперь спасибо без сарказма. Я в общем-то и сам уже на этом остановился....потому что ничего иного не придумал.
Yandex
Объявления
21.11.2012, 13:23     Как лучше организовать данные
Ответ Создать тему
Опции темы

Текущее время: 12:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru