PDA

Просмотр полной версии : [Вопрос] Вывод наименования



Skyline
19.01.2017, 15:48
Подскажите, при создании какого-нибудь названия. Как его сохранить в массив и вывести.

Подробнее:

ShowPlayerDialog(playerid, dBiz_Name, DIALOG_STYLE_INPUT, !"Создание бизнеса", !"Укажите название бизнеса.", !"Далее", !"Отмена");

Создается диалог, после этого, название наименование, должно быть записано, я это реализовал так.

biz_name[playerid] = strval(inputtext);

И при создании уже, приравнял к массиву:

BizInfo[TOTALBIZ][bName] = biz_name[playerid];
Но в БД никакой информации не записалось, пустое поле.
Подскажите пожалуйста, что нужно сделать для записи наименования?

qwezert
19.01.2017, 16:07
А почитать что делает функция strval?
The string you want to convert to an integer.

Skyline
19.01.2017, 16:13
А почитать что делает функция strval?
The string you want to convert to an integer.

Да, точно, вывел числом, что тогда нужно указать, подскажи пожалуйста)

Seviel
19.01.2017, 16:27
strmid в помощь
Зачем вопросительный знак перед строкой?

qwezert
19.01.2017, 16:29
Да, точно, вывел числом, что тогда нужно указать, подскажи пожалуйста)

Ну во первых - зачем тебе еще один массив biz_name? Почему бы после ввода названия бизнеса сразу не сохранять его в BizInfo?
Во вторых - делается это очень просто(я использую формат но можно и через strcat или memcpy)

format(BizInfo[TOTALBIZ][bName],strlen(inputtext),inputtext);
Но это простейшие вещи и их можно загуглить. Чувствую скоро не выдержу и запилю урок - как гуглить для чайников

$continue$
19.01.2017, 17:45
format не лучшая идея для скрепление строк. За пруфами сюда (http://pro-pawn.ru/showthread.php?12773-%D0%9C%D0%B8%D1%84%D1%8B-%D0%BE-Pawn-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3%D0%B5-2)

Ну во первых - зачем тебе еще один массив biz_name? Почему бы после ввода названия бизнеса сразу не сохранять его в BizInfo?
Во вторых - делается это очень просто(я использую формат но можно и через strcat или memcpy)

format(BizInfo[TOTALBIZ][bName],strlen(inputtext),inputtext);
Но это простейшие вещи и их можно загуглить. Чувствую скоро не выдержу и запилю урок - как гуглить для чайников

qwezert
19.01.2017, 17:50
format не лучшая идея для скрепление строк. За пруфами сюда (http://pro-pawn.ru/showthread.php?12773-%D0%9C%D0%B8%D1%84%D1%8B-%D0%BE-Pawn-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3%D0%B5-2)

Я это знаю, но эти доли секунд для меня абсолютно не важны. С текущими процессами и даже при 1000 онлайне врятли будет происходить 10000x1000 форматов. Для меня удобнее формат и я привык так использовать, а на глаз эта разница в скорости не видна)

Geebrox
19.01.2017, 18:51
Зачем вопросительный знак перед строкой?

для упаковки строк

Nash_Brigers
19.01.2017, 19:29
Зачем вопросительный знак перед строкой?
Для понта, по-большому счёту (чтоб меньше весил amx на пару кб)..


Я это знаю, но эти доли секунд для меня абсолютно не важны. С текущими процессами и даже при 1000 онлайне врятли будет происходить 10000x1000 форматов. Для меня удобнее формат и я привык так использовать, а на глаз эта разница в скорости не видна)Если уж даёшь советы на этом форуме, то давай эссенцию, а не то как тебе удобнее.

qwezert
19.01.2017, 19:32
Для понта, по-большому счёту (чтоб меньше весил amx на пару кб)..

Если уж даёшь советы на этом форуме, то давай эссенцию, а не то как тебе удобнее.

Использование format и strcat - как упаковка строк - сейчас это глупая гонка за оптимизацией - которая на современных процессорах - никому не нужна. Я выше написал - что можно использовать - то что хочешь один из нескольких вариантов.

DeimoS
19.01.2017, 20:52
format не лучшая идея для скрепление строк. За пруфами сюда (http://pro-pawn.ru/showthread.php?12773-%D0%9C%D0%B8%D1%84%D1%8B-%D0%BE-Pawn-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3%D0%B5-2)

Код автора будет вызываться раз в сто лет. От того, будет ли он там использовать format, strcat или будет скреплять строки в головах игроков, много времени он не выиграет. И этот самый format не заставит сервер лагать, даже если ты его будешь в OnPlayerUpdate вызывать.

А в той статье strcat и format сравнивались не с целью того, чтоб сказать людям "откажитесь от format и всегда используйте strcat", а просто как пример того, что если код меньше, то это не значит, что он быстрее.

vovandolg
22.01.2017, 11:00
Самп одно поточен ало, зачем гонка за скоростью спрашиваете вы постоянно?))
Допустим если бы люди хлестали всю воду с байкала бесконечно, выливали бы на землю и мылись по 10 раз в сутки то озеру кирдык пришёл бы,
так и тут Вас учат экономии на максимум, потому что есть слабые машины, забитые каналы (по которым частенько бывает забито всё дудосерами или теми кто сутками на пролёт ставит кучу порнухи на торрент) и вдруг по жизни прижмёт что то написать на слабую машину,
а Вы только и знаете как Вам удобнее писать:king:

$continue$
22.01.2017, 11:33
Он предназначен не для этого. Для скрепление строк есть другие функции.

Код автора будет вызываться раз в сто лет. От того, будет ли он там использовать format, strcat или будет скреплять строки в головах игроков, много времени он не выиграет. И этот самый format не заставит сервер лагать, даже если ты его будешь в OnPlayerUpdate вызывать.

А в той статье strcat и format сравнивались не с целью того, чтоб сказать людям "откажитесь от format и всегда используйте strcat", а просто как пример того, что если код меньше, то это не значит, что он быстрее.

qwezert
22.01.2017, 20:41
Самп одно поточен ало, зачем гонка за скоростью спрашиваете вы постоянно?))
Допустим если бы люди хлестали всю воду с байкала бесконечно, выливали бы на землю и мылись по 10 раз в сутки то озеру кирдык пришёл бы,
так и тут Вас учат экономии на максимум, потому что есть слабые машины, забитые каналы (по которым частенько бывает забито всё дудосерами или теми кто сутками на пролёт ставит кучу порнухи на торрент) и вдруг по жизни прижмёт что то написать на слабую машину,
а Вы только и знаете как Вам удобнее писать:king:

C текущими мощностями - это все равно что пытаться танк расковырять зубочисткой. Не будет нифига видна глазу разница в 10мс, человеческий мозг реагирует на событие минимум 150мс(это у летчиков такая скорость реакции). Суть таких уроков - не научить использовать эту экономию и ускорение работы везде - а в том что бы лишнего не напихать. Нужно экономить - но с умом.

Long-
22.01.2017, 20:56
Странно, strcat и предназначена для скрепление именно строк, самый альтернативный вариант.


strcat(BizzInfo[_][BizzName], bizz_name[playerid]);

DeimoS
22.01.2017, 21:54
Самп одно поточен ало, зачем гонка за скоростью спрашиваете вы постоянно?))
Допустим если бы люди хлестали всю воду с байкала бесконечно, выливали бы на землю и мылись по 10 раз в сутки то озеру кирдык пришёл бы,
так и тут Вас учат экономии на максимум, потому что есть слабые машины, забитые каналы (по которым частенько бывает забито всё дудосерами или теми кто сутками на пролёт ставит кучу порнухи на торрент) и вдруг по жизни прижмёт что то написать на слабую машину,
а Вы только и знаете как Вам удобнее писать:king:

Так а ты собираешься ставить свой сервер на слабую машину? Или автор собирается? И что вам мешает взять нормальную?

Эта мания оптимизировать всё, что только движется, является попыткой исправить проблему, которая ещё не появилась.

Отрежь себе тогда ногу, ведь вдруг однажды ты, например, наступишь на гвоздь, занесёшь инфекцию и тебе её придётся ампутировать.
Пытаясь оптимизировать всё, что только можно, ты как раз и отрезаешь себе ногу. Точнее, своему скрипту, лишая себя возможности написать что-то уникальное и новое. А кто не боится потерять пару миллисекунд/байт или умеет оптимизировать с умом, тот и пишет системы, которые потом весь SA-MP взрывают "супирмегауникальностью". Взять тот же инвентарь на текстдравах, от которого долгое время все текли.
Думайте не над тем, как оптимизировать код, а над тем, как интереснее реализовать свою идею. А уже оптимизацией занимайтесь потом. Тогда в этом всём будет смысл. А пока SA-MP наполняет куча скриптеров, которые пишут код не ради реализации интересных идей, а ради того, чтоб их код работал быстрее всех других реализаций.



Он предназначен не для этого. Для скрепление строк есть другие функции.

От того, что ты скрепишь строки функцией для форматирования, к тебе не вломятся в квартиру 2 амбала и не начнут ломать коленные чашечки. Это первое.
Второе: если говорить о том, вписывается ли format логически в этот код, то да, он не вписывается (хотя с тем же strcat массив придётся обнулять перед скреплением, что только раздует код). Но изначально ты оперировал тем, что format медленнее, а значит его не стоит использовать. Именно поэтому я и встрял в этот разговор. И приплетать сюда другие функции нет смысла.