06.12.2010, 08:35
(
Last edited by DANGER1979; 06/12/2010 at 09:09 AM.
)
Не могу понять почему strins не работает второй раз после замены подстроки <ToPlanet>
и почему то print("End"); не выводится
Необходимо, создать ф-ию замены подстроки без использования format, т.к. она очень медленная.
Где getStr строка большой длины (примерно 1920, возможно и больше) для формирования текста в диалоговом окне.
Вот для чего мне это надо
Второй маленький вопрос. Можно не обращать внимание.
В strins последний параметр
//maxlength=sizeof replacestr - это Максимальный вставляемый размер подстроки replacestr
или
//maxlength=sizeof getStr - это Максимальный вставляемый размер строки getStr
и вообще зачем он нужен?
и почему то print("End"); не выводится
Code:
new ToPlanet[20] = "Santa Marina Beach"; public OnGameModeInit() { new string[] = "- Мое имя <Ranger>, я <ToPlanet> представляю <FromStar>, депортамента <ToPlanet> штата <ToStar>.\n"; print( replaceString(string, "<ToPlanet>", ToPlanet) ); return 1; }
pawn Code:
stock replaceString(getStr[], const findstr[], const replacestr[])
{
new start = strfind(getStr, findstr, true);
do
{
new end = start + strlen(findstr);
strdel(getStr, start, end);
strins(getStr, replacestr, start, 1920);
start = strfind(getStr, findstr, true, start+strlen(replacestr));
} while(start != -1);
print("End");
return getStr;
}
Где getStr строка большой длины (примерно 1920, возможно и больше) для формирования текста в диалоговом окне.
Вот для чего мне это надо
Code:
enum locinfo { locused, locmessage[128], loc }; new LOCATION[15][locinfo] = {....}; new msgitem[1920]; for(new i=0; i<sizeof(LOCATION); i++) { if(LOCATION[i][locused] == 1) { strcat(msgitem, LOCATION[i][locmessage]); } } msgitem = replaceString(msgitem, "<ToPlanet>", ToPlanet); MenuOperation[playerid] = 301; ShowPlayerDialog(playerid,47,DIALOG_STYLE_MSGBOX,"Администрации Штата",msgitem,"Согласиться","Отказаться");
В strins последний параметр
//maxlength=sizeof replacestr - это Максимальный вставляемый размер подстроки replacestr
или
//maxlength=sizeof getStr - это Максимальный вставляемый размер строки getStr
и вообще зачем он нужен?