13.01.2010, 18:21
pawn Code:
stock Float: fparam ( const source[], delimiter = ' ', substrIndex = 0 )
{
new dest[40];
for ( new cur, pre, i = -1; ; cur++ ) // пробежимся по каждому символу в строке source
{
if ( source[cur] == 0 ) // если текущий символ в source - это символ конца строки
{
if ( ++i == substrIndex ) // если индекс текущей подстроки и есть sourceIndex
strmid( dest, source, pre, cur, 40 ); // скопируем в dest нужную подстроку из source
break;
}
else if ( source[cur] == delimiter ) // если текущий символ в source - это символ для разделения строки
{
if ( ++i == substrIndex ) // если индекс текущей подстроки и есть sourceIndex
{
strmid( dest, source, pre, cur, 40 );// скопируем в dest нужную подстроку из source
break;
}
pre = cur + 1;
}
}
return floatstr(dest);
}
А вообще мне больше нравится вот так:
pawn Code:
stock Float:fparam2(const source[], delimiter = ' ', substrIndex = 0)
{
new dest[40];
sparam(dest, sizeof(dest), source, delimiter, substrIndex);
return floatstr(dest);
}