Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 6

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

18.11.2012, 11:14. Показов 864. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Создаю класс 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 минут
Может массив структур? А как это реализовать? Можно пример?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2012, 11:14
Ответы с готовыми решениями:

Как лучше сохранять данные
Привет. Мне нужно сохранять и считывать некоторые данные. Как это лучше сделать? Использовать XML или базы данных?

Организовать данные указателями
Нужно написать, так сказать, модификацию задачи. Организовать данные с помощью указателей в данной задаче. Помогите пожалуйста ...

Организовать данные в виде линейного списка
Всем добрый день. В общем проблема такая..надо организовать данные в виде линейного списка.. есть структура..вот тут и самое...

3
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 6
21.11.2012, 10:09  [ТС]
Спасибо большое за помощь.

Добавлено через 15 секунд
Спасибо большое за помощь.
0
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,029
Записей в блоге: 1
21.11.2012, 10:17

Не по теме:

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


Не по теме:

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



Цитата Сообщение от ГрОзНаЯ ФуСяКа Посмотреть сообщение
Может массив структур?
Именно!
Цитата Сообщение от ГрОзНаЯ ФуСяКа Посмотреть сообщение
А как это реализовать?
Взять книжку и почитать что такое структуры и с чем их лучше готовить.
Цитата Сообщение от ГрОзНаЯ ФуСяКа Посмотреть сообщение
Можно пример?
Лично я не вижу смысла от примера, но:
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];
   //...
}
1
0 / 0 / 0
Регистрация: 18.11.2012
Сообщений: 6
21.11.2012, 13:23  [ТС]
Вот теперь спасибо без сарказма. Я в общем-то и сам уже на этом остановился....потому что ничего иного не придумал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.11.2012, 13:23
Помогаю со студенческими работами здесь

Наследование vs Композиция vs Агрегация: что лучше выбрать? Как лучше передавать объекты в функции?
Добрый день!! Дело вот в чём, я хочу создать класс, внутри которого будут созданы объекты других классов (реализованных в некоторой...

Где лучше хранить данные таблиц?
Собираюсь написать свой справочник ГОСТовского металлопроката. И вот возник вопрос, где хранить табличные данные. Прописать массивы прямо в...

Как лучше организовать массив?
Привет, ребята! У меня есть информация такого плана: Не могу понять как ее лучше хранить, массивы должны быть...

Как лучше организовать интерфейс?
Доброго времени, уважаемые форумчане. Подскажите, пожалуйста, как это сделать: --- Есть 2 категории пользователей: admin и user. Для...

как лучше организовать редирект?
Добрый день. Занят созданием проекта. Сайт будет один (один и тот же дизайн + контент), но хочу сделать для него доступ с 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru