Member 12277263 Ответов: 1

Как использовать массив списков в C++


Я получаю список брендов из базы данных sqlite3, вы можете видеть в функции BrandCodes, я написал новую функцию Brands (), я не знаю, как назначить BRCode и BRText этому результату. Это правильный подход. Пожалуйста, помогите мне, ребята. Я знаю, как использовать в C#.

SortedList *Util::BrandCodes()
{
    SortedList *list = new SortedList();

    IDbCommand    *command = 0;
    IDataReader *reader = 0;

    command = m_dbConnection->CreateCommand();
    command->CommandText = S"SELECT * FROM BrandData";
    reader = command->ExecuteReader();
            // Read all records
    while( reader->Read() )
    {
        // Add item to the map [ market_id, description ]
        list->Add( reader->Item[ S"BRCode" ]->ToString(),
        String::Format(S"{0}({1})",GetFieldValue(reader,S"BRText"),GetFieldValue(reader,S"BRCode")));
    }
    Brands();
    return list;
}

String *FuelUtil::Brands( ) __gc[]
{
    String *result __gc[];
    result = 0;
    SortedList  *brandList = 0;

    if (brandList == 0)
    {
        brandList = GetBrandCodes();            
    }       

    for (int i =0; i<= brandList->Count; i++)
    {
        result = new String * __gc[2];
        // how to assign BRCode and BRText to this result
        //result[0] = 
        //result[1] = 
    }

    return result;
}


Что я уже пробовал:

Я попробовал этот путь

String *FuelUtil::Brands( ) __gc[]
{
    String *result __gc[];
    result = 0;
    SortedList  *brandList = 0;

    if (brandList == 0)
    {
        brandList = GetBrandCodes();            
    }       

    for (int i =0; i<= brandList->Count; i++)
    {
        result = new String * __gc[2];
        // how to assign BRCode and BRText to this result
        //result[0] = 
        //result[1] = 
    }

    return result;
}

1 Ответов

Рейтинг:
1

«_Superman_»

Фистли, я не уверен, что ты все делаешь правильно.
Похоже, вы используете управляемый C++, и в этом случае вы должны использовать SortedList^ вместо SortedList* а также gcnew вместо new.

Вы должны быть в состоянии получить значение внутри цикла for с помощью - brandList->Values[i];
Это, конечно, вернет строку в формате "BRText(BRCode)" как будто тебя включили в список.

Затем вам нужно будет разделить его на отдельные строки, используя String:: Split Method (array< char & gt;^)[^].