Array, разбить ячейку.

Сообщения
893
Реакции
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

То есть, в одной ячейке несколько "значений". Есть способ, как это можно реализовать на Array:?

Вот сам код, который получает аррай изи ини файла:
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);
}
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
344
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
Если уж парсер хочешь, так используй встроенный в амхх, там те же самые секции, только готово всё.
 
Сообщения
673
Реакции
242
Помог
11 раз(а)
не вижу сообственно смысла делать этого , "если работает,лучше не трогай"
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу