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

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±

    Размер массива

    Приветствую! Буду краток. Допустим, есть у меня массив:
    1. new test[10][] =
    2. {
    3. {1, 2, 3, 4, 5},
    4. {1, 2, 3},
    5. {4, 5, 6}
    6. };


    Можно ли узнать размер определённой строки в массиве? (допустим, количество значений во второй)

  2. #2
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    ИМХО, проще всего через трюки с emit узнать смещения строк (в Pawn эти смещения хранятся перед данными в многомерных массивах) и по их разнице вычислить количество элементов в строке.
    Также можно обойтись и без emit, добившись доступа к массиву по отрицательному индексу, чтобы вместо данных считать те самые смещения (в многомерных массивах правильность индекса не проверяется, поэтому ошибки времени выполнения быть не должно) - похожим образом я недавно делал конкатенацию строк.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  3. Пользователь сказал cпасибо:
    PawnoNoob (29.05.2018)
  4. #3
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Хм, это, конечно, слишком сложно, но я попробовал сделать так (вывести через команду):
    1. strlen(test[params[0]])


    и, вроде как, показало количество. Правильно ли?

  5. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Хм, это, конечно, слишком сложно, но я попробовал сделать так (вывести через команду):
    1. strlen(test[params[0]])


    и, вроде как, показало количество. Правильно ли?
    Точно так же правильно, как пытаться есть суп вилкой. Функция strlen() предназначена для строк, в вашем же массиве не строки, а просто данные (если верить предоставленному вами же примеру).
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  6. #5

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    Хм, это, конечно, слишком сложно, но я попробовал сделать так (вывести через команду):
    1. strlen(test[params[0]])


    и, вроде как, показало количество. Правильно ли?
    Попробуй в середину вставить 0, и проверь результат после этого.

 

 

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

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

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

Ваши права

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