Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Убираем лишние пробелы в чате. - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Убираем лишние пробелы в чате.
Оценка: -----

#1
Пользователь офлайн   Robin_Samond 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Всем привет, решил выложить небольшой урок как сделать простой скрипт на удаление лишних пробелов в предложениях игроков, что бы чат вашего сервера был красивым и не портил впечатление о сервере. =)

new i = strlen(text), spaces;
while(--i != -1) // проверяем каждый символ в строке
{
    switch(text[i])
    {
        case ' ': // если находим пробел..
        {
            spaces++;  // для проверки на первый пробел (spaces == 1)
            if(spaces > 1) // первый пробел не удаляется, а если это уже второй подряд тогда..
            {
                spaces--; 
                strdel(text, i, i+1); // удаляем пробел по координатам, где он был обнаружен.
            }
        }
        default: spaces = 0; // если найден символ, но не пробел, тогда счётчик обнуляем и ищем снова первый пробел.
    }
}


Так как могут быть пробелы в начале и в конце предложения, то они тоже удалятся, но останутся по одному в начале и в конце предложения соответственно, тогда делаем простую проверку..

if(text[i-1] == ' ') strdel(text, i-1, i); // если после нашего редактирования предложения в конце найден пробел "предложение " <- удаляем его
if(text[0] == ' ') strdel(text, 0, 1); // если после нашего редактирования предложения в начале найден пробел, удаляем его -> " предложение" 


Как итог, получаем скрипт, который из такого:
"    предло    жение   !  ..    "

Сделает такое:
"предло жение ! .."


Здравая критика и предложения по улучшению приветствуются!
1

#2
Пользователь офлайн   Mario_Ferra 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Изображение
new RegEx:someExpressionID = regex_build("\s\s+");
new chat[115]; // вроде только 114 символов помещаются в строку для чата
if(regex_isvalid(someExpressionID))regex_replace_exid(text, someExpressionID, " ", chat, sizeof(chat));
else print("There's syntax error: an invalid pattern in a regular expression (\s\s+)");


(протестировать решение возможности не имею, просто дополню велосипед велосипедом)
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика