C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Как связать AnsiStirng и Enum?
DeathDealer
  Отправлено: 05.10.2006, 11:33


Ученик-кочегар

Группа: Участник
Сообщений: 2



Добрый день всем.

"Поимела" меня проблема smile.gif А дело вот в чём:

Хочу написать свой клас чтобы хронить тексты програмы.
Попробовал ИНИ файл, и ето мне не очень понравилось.
.
Придумал так:

Создаю структуру из ансистингов, так-же создаю енумератор:

CODE

enum TTextsID
{
TXT_ID_LANGUAGE,
TXT_ID_CAPTION,
TXT_ID_CONNECT_HINT,
TXT_ID_SMS_HINT,
TXT_ID_CALLS_HINT,
};

typedef struct TStructTexts
{
AnsiString strLanguage;
AnsiString strCAPTION;
AnsiString strCONNECT_HINT;
AnsiString strSMS_HINT;
AnsiString strCALLS_HINT;
}TStructTexts;



теперь создаю вецтор из структуры:
CODE

std::vector <TStructTexts> vecTextStruct;



И тут каждый елемент вектора (вектор[0], вектор[1]) — определяет разный язык.

Стрингов у меня много, для каждого функцыю написать, не получится, во первых потому что стринги могут добавлятся или убиратся.

Есть ли способ связать енум и Структуру стрингов, которой я подаю енум, а она мне вернёт поинтер на запрашиваемый стринг?
olegenty
Отправлено: 05.10.2006, 11:41


Ветеран

Группа: Модератор
Сообщений: 2412



enum тебе тут зачем??? он же жесткий... хочешь уникальную однозначную идентификацию — используй, например
CODE

typedef std::map<AnsiString, TStructTexst> LangMap;

TStructTexst CPPStructTexts;
LangMap Langs;
Langs["C++"] = CPPStructTexts;
...


DeathDealer
Отправлено: 05.10.2006, 12:53


Ученик-кочегар

Группа: Участник
Сообщений: 2



Everything is OK.

Вернуться в Вопросы программирования в C++Builder