Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5

Тема: По sscanf.

  1. #1
    Аватар для KakbeYura
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±

    По sscanf.

    В команде есть 3 параметра. Из них обязательных всего 2, один из них может быть как строковым, так и численным. Для каждой ситуации похожие действия. Есть что то помимо такого способа? :

    PHP код:
    if(!sscanf(params"ddd"plparams[0], params[1]))
    {
    // ...
    }
    else if(!
    sscanf(params"sdd"nameparams[0], params[1]))
    {
    // ...
    }
    else if(!
    sscanf(params"dd"plparams[0]))
    {
    // ...
    }
    else if(!
    sscanf(params"sd"nameparams[0]))

    Гуглил, ничего не находил. А такой способ слишком длинный, может подскажите что-то эффективнее? strtok не предлагать, пожалуйста

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    PHP код:
    new
        
    text[28];

    sscanf(params"I(-1)I(-1)s[28]"params[0], params[1], text)

    if(
    params[0] == -1)
        
    // -> числовой параметр 0 пропущен
    if(params[1] == -1)
        
    // -> числовой параметр 1 пропущен
    if(isnull(text))
        
    // -> строковой параметр пропущен 

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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    У меня строковый параметр в начале. Прокатит?

    PHP код:
    new
        
    text[28];

    sscanf(params"s[28]I(-1)I(-1)"textparams[0], params[1])

    if(
    isnull(text))
        
    // -> строковой параметр пропущен 
    if(params[0] == -1)
        
    // -> числовой параметр 0 пропущен
    if(params[1] == -1)
        
    // -> числовой параметр 1 пропущен 
    - - - Добавлено - - -

    Плюс, вместо строкового параметра там может быть численный

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Прокатит в том случае, если в параметре одно слово.

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

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    А прокатит, если там число? Ну тоесть там или число, либо слово, в любом случае записываю в массив, а затем функцией strval проверю, число там или слово. Ссканф воспримит число как строку?

 

 

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

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

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

Ваши права

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