2 вопроса. -
Urukhay - 24.11.2013
Первое, какое максимальное количество строк в диалоге?(listitems).
Второе, стоит ли, да и вообще, хватит ли скорости для использования одного глобального массива для форматирования строк по всему моду?
Re: 2 вопроса. -
Stepashka - 24.11.2013
Нелимитировано.
А смысл. Иногда вам нужна строка в 16 символов, а иногда в 256. Значит массив должен быть большой. А это значит при обработки коротких строк вы будете постоянно проверять пустые ячейки, что отнимает время.
Re: 2 вопроса. -
Gameyer - 24.11.2013
А если он сделает две глобальные переменные с 256 и 16 символами.
Re: 2 вопроса. -
Urukhay - 24.11.2013
Quote:
Originally Posted by Stepashka
Нелимитировано.
А смысл. Иногда вам нужна строка в 16 символов, а иногда в 256. Значит массив должен быть большой. А это значит при обработки коротких строк вы будете постоянно проверять пустые ячейки, что отнимает время.
|
А вот для кого в таком случае делают параметр количества ячеек в том же format?
fornat ( str ,
24 , "%d" , test );
Re: 2 вопроса. -
ea8de1 - 24.11.2013
Quote:
Originally Posted by Urukhay
А вот для кого в таком случае делают параметр количества ячеек в том же format?
fornat ( str , 24 , "%d" , test );
|
Такой параметр есть во всех функциях, преобразующих
строку, он находятся в конце всех аргументов (кроме
format) и определяется
sizeof.
Например:
Code:
strcat(dest[], const source[], maxlength = sizeof dest)
Поэтому при использовании подобных функций его можно не указывать.
А с
format такая махинация не проходит, потому что в нем указывается неопределенное кол-во аргументов после
текста, в который преобразуется массив.
pawn Code:
format(string, 24, "текст %i %f %s", ...);
Re: 2 вопроса. -
Stepashka - 24.11.2013
Quote:
Originally Posted by Urukhay
А вот для кого в таком случае делают параметр количества ячеек в том же format?
fornat ( str , 24 , "%d" , test );
|
Этот параметр указывает размер строки в которую вы производите запись. И нет он не спасет от обработки пустых ячеек. Другие функции все равно будут проверять все ячейки.
Re: 2 вопроса. -
stabker - 24.11.2013
Так и делаю. new str144[144], str300[300];
Кроме того:
pawn Code:
#define one str144[0]
#define two str144[1]
//
#undef two
#undef one
Чую, вылезет мне это боком