Участник
Пользователь
- Сообщения
- 889
- Реакции
- 149
- Помог
- 25 раз(а)
Здравствуйте, использую Аррай массивы, и у меня возник вопрос, можно ли каким либо образом разделить ячейку?
Допустим, у меня есть такой вот ини файл:
А я хочу сделать так:
То есть, в одной ячейке несколько "значений". Или может есть способ проще, как это можно реализовать?
Вот сам код, который получает аррай изи ини файла:
Допустим, у меня есть такой вот ини файл:
C++:
[Тут моя секция]
ADD_TYPE = MENU_PISTOL
MENU_NAME = Deagle
ROUND_ACCESS = 4
WEAPON_NAME = weapon_deagle
AMMO = 7
BP_AMMO = 35
GIVE_TYPE = 1
ADD_TYPE = MENU_PISTOL
MENU_NAME = Usp
ROUND_ACCESS = 3
WEAPON_NAME = weapon_usp
AMMO = 12
BP_AMMO = 120
GIVE_TYPE = 1
C++:
[Тут моя секция]
ADD_TYPE = MENU_PISTOL | MENU_PISTOL
MENU_NAME = Deagle | Usp
ROUND_ACCESS = 4 | 3
WEAPON_NAME = weapon_deagle | weapon_usp
AMMO = 7 | 12
BP_AMMO = 35 | 120
GIVE_TYPE = 1 | 1
То есть, в одной ячейке несколько "значений". Или может есть способ проще, как это можно реализовать?
Вот сам код, который получает аррай изи ини файла:
C++:
stock ReadFile() {
new szData[256], szFile[256], f, iSection;
formatex(szFile, charsmax(szFile), "%s/%s/%s", g_szConfigsDir, szPathFile[0], szPathFile[1]);
f = fopen(szFile, "r");
new szLeft[256], szRight[256];
while(!feof(f)) {
fgets(f, szData, charsmax(szData));
trim(szData);
if(!szData[0] || szData[0] == ';' || szData[0] == EOS)
continue;
if(szData[0] == '[') {
iSection++;
continue;
}
strtok(szData, szLeft, charsmax(szLeft), szRight, charsmax(szRight), '=');
trim(szLeft), trim(szRight);
if(equal(szLeft, "ADD_TYPE")) {
if(equal(szRight, "MENU_PISTOL"))
ArrayPushCell(g_iAddType, ADD_MENU_PISTOL);
else if(equal(szRight, "SPAWN"))
ArrayPushCell(g_iAddType, ADD_SPAWN);
}
switch(iSection) {
case SECTION_PISTOL: {
if(equal(szLeft, "MENU_NAME"))
ArrayPushString(g_szMenuItemName, szRight);
else if(equal(szLeft, "ROUND_ACCESS"))
ArrayPushCell(g_iRoundAccess, str_to_num(szRight));
else if(equal(szLeft, "WEAPON_NAME"))
ArrayPushString(g_szWeaponName, szRight);
else if(equal(szLeft, "AMMO"))
ArrayPushCell(g_iAmmo, str_to_num(szRight));
else if(equal(szLeft, "BP_AMMO"))
ArrayPushCell(g_iBpAmmo, str_to_num(szRight));
else if(equal(szLeft, "GIVE_TYPE"))
ArrayPushCell(g_iGiveType, str_to_num(szRight));
}
}
continue;
}
fclose(f);
}
Вложения
-
10 KB Просмотры: 4