Русское сообщество по скриптингу

как записать строку в двух мерный массив  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

как записать строку в двух мерный массив

Сообщение RSO_ » 22 ноя 2019, 21:59

Код: Выделить всё
new year_month[12][31];
  
  for
(new i = 0; i < 12; i++){
      for(new j = 0; j < 12; j++){
          year_month[i][j] = "NAN"
      }
  }
  
  year_month
[11][30] = "новым годом";
  
  
  
//new the_date = 2019.12.31
  
  new month 
= 12
  new day 
= 31
  
  if
(year_month[month-1][day-1] != "NAN")
  {
   client_print(0, print_chat, "Поздравляем с: %s", year_month[month-1][day-1])
  
Последний раз редактировалось RSO_ 23 ноя 2019, 05:48, всего редактировалось 1 раз.
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: как перезаписать строку в двух мерный массив

Сообщение hren_morjovui » 23 ноя 2019, 02:07

Код: Выделить всё
new arr[][] = "Двумерный массив"


то есть
Код: Выделить всё
client_print(0, print_center, "%s", arr[0]); 

покажет сообщение "Двумерный массив" по центру экрана
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: как перезаписать строку в двух мерный массив  [Решено]

Сообщение gyxoBka » 23 ноя 2019, 02:48

hren_morjovui, тут неправильно все...

Двумерный массив если несколько строк.

Код: Выделить всё
new arr[][] = "Двумерный массив";  

==>
Код: Выделить всё
new arr[] = "Двумерный массив";  




Код: Выделить всё
client_print(0print_center"%s"arr[0]);  

==>
Код: Выделить всё
client_print(0print_center"%s"arr);  
Ню-ню-ню, не пишите мне в ЛС ху*ню.
В ЛС не помогаю и не просите.
Аватара пользователя
gyxoBka
Скриптер
 
Сообщения: 888
Зарегистрирован: 29 янв 2012, 18:03
Благодарил (а): 239 раз.
Поблагодарили: 249 раз.
Опыт программирования: Больше трех лет

Re: как перезаписать строку в двух мерный массив

Сообщение RSO_ » 23 ноя 2019, 05:47

ок
как в ячейку в двухмерного массива записать строку
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: как записать строку в двух мерный массив

Сообщение hren_morjovui » 23 ноя 2019, 10:36

gyxoBka,
Код: Выделить всё
new arr[] = "Двумерный массив"
интересная "логика"... когда как "Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы."

Добавлено спустя 5 минут 1 секунду:
Re: как перезаписать строку в двух мерный массив
RSO_ писал(а):ок
как в ячейку в двухмерного массива записать строку

Код: Выделить всё

new arr
[3][64], arr_len = 63;
copy(arr[0], arr_len, "Записываемая строка");
 
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: как записать строку в двух мерный массив

Сообщение RSO_ » 23 ноя 2019, 13:36

Pawn amx весёлый язык и функции в нём забавные некоторые даже забыли добавить
например работы со строками "strdel". c массивом тоже весело

вывести можно только нулевой элемент
первый элемент не получится
Код: Выделить всё
new ArgStr[] = {"a", "b", "c", "d", "i", "f", "g"}
client_print(id, print_chat, "%s", ArgStr[1])



правильно будет так
Код: Выделить всё
new ArgStr[][] =  {"a", "b", "c", "d", "i", "f", "g"}
client_print(id, print_chat, "%s", ArgStr[1])


тут желательно на примере показывать
Код: Выделить всё
new year_month[12][31];
  
  for
(new i = 0; i < 12; i++){
      for(new j = 0; j < 12; j++){
          year_month[i][j] = "NAN"
      }
  }
  
year_month
[11][30] = "новым годом";
  

слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: как записать строку в двух мерный массив

Сообщение xbass13 » 23 ноя 2019, 14:13

Формулируйте название темы, суть вопроса и создавайте тему. Вы всех сбили с толку.
На выходе у вас должен получится, судя по первому посту, трехмерный массив. new year_month[11][30][] - где первое измерение - месяц, второе день, третье - значение, привязанное к определенной дате (например, [11][30] - "новым годом", что не используется - "NAN"). Зачем вам этот костыль? Сделайте так:

Код: Выделить всё

public plugin_init
() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd("say /cong","congratulateTest")
}

public congratulateTest(id)
{
    //текущая дата 30 декабря
    new month = 12
    new day 
= 30
        
    congratulate
(id, month, day)
}
//дерево if-else
public congratulate(id, month, day)
{
    if (month == 1)//январь
    {
        if (day < 4)    //1-3 января
            congratulatePrint(id, "Новым годом")
        else
        if 
(day == 7)    //7 января
            congratulatePrint(id, "Рождеством Христовым")
    }else
    if (month == 2)//ферваль
    {
        if (day == 23)    //23 февраля
            congratulatePrint(id, "днем защитника Отечества")
    }else
    if (month == 12)//декабрь
    {
        if (day > 28 && day <= 31)    //29-31 декабрь
            congratulatePrint(id, "Новым годом")
    }
}
//вывод в чат
public congratulatePrint(id, text[])
{
    client_print(id, print_chat, "Поздравляем с: %s", text)
}
 
Аватара пользователя
xbass13
 
Сообщения: 96
Зарегистрирован: 13 июн 2012, 21:20
Благодарил (а): 36 раз.
Поблагодарили: 35 раз.
Опыт программирования: Больше трех лет
Языки программирования: pawn, c++, js, php

Re: как записать строку в двух мерный массив

Сообщение RSO_ » 23 ноя 2019, 14:34

xbass13, Зачем вам этот костыль?
я тут загуглил. Всего в России 211 праздников.
это сколько условий
трехмерный массив. если не сложно подскажи
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: как записать строку в двух мерный массив

Сообщение hren_morjovui » 24 ноя 2019, 00:18

RSO_ писал(а):xbass13, Зачем вам этот костыль?
я тут загуглил. Всего в России 211 праздников.
это сколько условий
трехмерный массив. если не сложно подскажи


Ну можно сделать через *.ini файл... со всеми датами
типа такого формата
Код: Выделить всё
//    [Новый Год]
//    MONTH = 1
//    DAY = 1
//
//    [Старый Новый Год]
//    MONTH = 1
//    DAY = 14


при загрузке карты сразу проверять текущую дату и сравнивать с теми что в файле и записывать название уже в одномерный массив если нужно и выводить там где нужно. :dntknw:
"В этом мире неизбежны три вещи: смерть, налоги и гравитация."
Аватара пользователя
hren_morjovui
 
Сообщения: 258
Зарегистрирован: 29 май 2018, 09:15
Благодарил (а): 88 раз.
Поблагодарили: 22 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
PHP
jQuery

Re: как записать строку в двух мерный массив

Сообщение RSO_ » 24 ноя 2019, 00:31

hren_morjovui, xz как проще
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11