Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   обработка Asом текста Xml документа (http://www.flasher.ru/forum/showthread.php?t=67424)

iNils 03.08.2005 02:15

а чем он совершеннее? :)

KidsKilla 03.08.2005 02:48

тем что прокатывают даже такие строки:
Код:

"xxx\n        \nxxx"
// и такие:
"xxx    \n\n      xxx"
// и такие:
"xxx\n\r\r\n\n\n\n\rxxx"


iNils 03.08.2005 11:40

мой пример является примером обыкновенной замены символов.
твой, убиранием в последовательности строк форматирования всех символов кроме одного.
но если требуется обработать простую замену, твоя функция в работает в 10-12 раз медленее.

inspace 03.08.2005 13:41

огромное спасибо =))

KidsKilla 03.08.2005 14:23

2inspace огромное пожалуйста =)

2 iNils это ф-ция для конкретной задачи -- убирания повторяющихся, в том числе пробельных строк, а не "убиранием в последовательности строк форматирования всех символов кроме одного". она удаляет строки как в формате юникса, так и виндовом. если, к примеру в тексте встретится конструкция вида:
"текст

текст"
где в средней строке затесался пробел (что часто бывает при копи-пейсте), то твоя ф-ция не удалит такую последовательность, а моя удалит.
конечно, она несравнимо медленнее, но более универсальна.
словом, выбор за автором.

iNils 03.08.2005 14:32

повторяющихся? то есть в последовательности убирается дубликаты?

KidsKilla 03.08.2005 14:41

кстати вариант ускоренный на 35%, мо медленнее 1го в 14 =))) раз:
Код:

function killNewlines(txt){
        var newTxt = "";
        var flag = false;
        var i = txt.length;
        while(i--){
                if(txt.charCodeAt(i)>33) {
                        newTxt += txt.charAt(i);
                        flag = false;
                        continue;
                } else if(!flag&&(txt.charAt(i) == "\n" || txt.charAt(i) == "\r")){
                        newTxt += newline;
                        flag = true;
                        continue;
                }
        }
        return newTxt
}

блин, не так сказал, дубликаты не киляются. пустые киляются.
\n\n\n становится \n
\n\n тоже \n
а у тя \n\n\n станет \n\n (что, по сути, баг)
вот в этом преимущество...


Часовой пояс GMT +4, время: 08:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.