Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±

    Как разбить следующее...

    Доброго времени суток господа, вопрос вот в чем. В базе (в таблице), я храню склады армий как "массив", через запятую. Т.е. получается: 0,0,50,100,55,135 (где 0,0 - СВ | 50 - ВВС материалы, 100 - ВВС патроны | 55 - ВМФ материалы, 135 - ВМФ патроны).

    При загрузке, мне нужно это все как то дело разбить, что бы следующее например: 0,0,50,100,55,135, разбилось в gArmyWarehouse[3][2], чтобы конечный результат был таким:

    PHP код:
    gArmyWarehouse[0][0] = 0
    gArmyWarehouse
    [0][1] = 0
    gArmyWarehouse
    [1][0] = 55
    gArmyWarehouse
    [1][1] = 100
    gArmyWarehouse
    [2][0] = 55
    gArmyWarehouse
    [2][1] = 135 
    Как такое сделать?

  2. #2
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    sscanf.
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  3. #3
    Аватар для StevenH
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от Alpano Посмотреть сообщение
    sscanf.
    Да ты что? Так можешь покажешь как? В одномерный массив я могу и сам разбить, а в двумерный как?

  4. #4
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Чет не догнал, но попробуем так:
    sscanf(String,"dddddd",gArmyWarehouse[0][0],gArmyWarehouse[0][1],gArmyWarehouse[1][0],gArmyWarehouse[1][1],gArmyWarehouse[2][0],gArmyWarehouse[2][1]);
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  5. #5
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    PHP код:
    sscanf(string"p<,>dddddd",
        
    gArmyWarehouse[0][0],
        
    gArmyWarehouse[0][1],
        
    gArmyWarehouse[1][0],
        
    gArmyWarehouse[1][1],
        
    gArmyWarehouse[2][0],
        
    gArmyWarehouse[2][1]); 
    Как научиться использовать sscanf2
    Последний раз редактировалось Geebrox; 28.03.2017 в 23:05.

  6. #6
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Если и использовать sscanf, то нормально:
    PHP код:
    new gArmyWarehouse[6][2];
    sscanf("0,0,50,100,55,135""p<,>a<i>[12]"gArmyWarehouse[0]); 
    Можно ещё воспользоваться костылём с подсчётом размера массива:
    PHP код:
    new fmt[16];
    format(fmtsizeof(fmt), "p<,>a<i>[%d]"sizeof(gArmyWarehouse) * sizeof(gArmyWarehouse[]));
    sscanf("0,0,50,100,55,135"fmtgArmyWarehouse[0]); 
    Жаль, что в Pawn нельзя встраивать в строки произведение констант, что-то вроде #(6 * 2).
    Последний раз редактировалось ziggi; 28.03.2017 в 23:16.

  7. Пользователь сказал cпасибо:
    StevenH (29.03.2017)
 

 

Информация о теме

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

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •