Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Emurasoft EmEditor

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

webern

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
#title="Нумерация выделенных логических строк"
#tooltip="Insert Numbering"
#tooltip="Нумеровать выделенные логические строки
// Этот макрос нумерует выделенные логические строки
// Особенности:
// 1. В зависимости от кол-ва выделенных строк вставляет перед каждым порядковым
//    номером необходимое кол-во нулей, (пример: 1,2, или 01,02 или 001, 002 и т.д.)
// 2. Вместо пробела, по умолчанию отделяющего порядковый номер от выделенного текста,
//    юзер может использовать любое кол-во желаемых символов, изменив содержание переменной DELIMITER
// 3. Строку(и) можно выделять не целиком, но необходимо выделить хотя бы один символ
 
with (document.selection){
 
    if (!IsEmpty){
 
        // Можете заменить пробел между кавычками на любое кол-во желаемых символов
            var DELIMITER = " ";
 
        //ПОКА НЕ РЕАЛИЗОВАНО: нумеровать пустые строки или нет
            var skipEmptyLines = new Boolean (false);        // false: пустые строки будут пронумерованы;   true: пустые строки не будут прономерованы
        //ПОКА НЕ РЕАЛИЗОВАНО: использовать меню выбора функций или нет
            var skipMenu = new Boolean (false);                // false: использовать меню;   true: не использовать меню
 
        // Функция подсчёта кол-ва цифр (вспомогательная)
            function countDigits(n) {
            for(var i = 0; n > 1; i++) {
                n /= 10;
            }
            return i;
            }
 
        // Функция вставки нулей перед порядковым номером и сдвига порядкового номера вправо (вспомогательная)
            function pad(num, size) {
                var z = num +"";
                while (z.length < size) {
                    z = "0" + z;
                }
            return z;
            }
 
        // Проверяем целиком ли выделена 1-ая строка, и, если нет, то выделяем её целиком.
        // Это нужно для правильного выполнения основного алгоритма
            y1 = GetAnchorPointY (eePosLogical);
            y2 = GetActivePointY (eePosLogical);
            if (y1 <= y2) SetAnchorPoint ( eePosLogical, 1, y1 )
            if (y1 > y2) StartOfline (eeLineLogical, true);
 
        // Основной алгоритм нумерации
            var s = Text.split("\n");
            var len = s.length;
            for (var j=0; j < len; j++){
                if (s[j] != ""){
                    s[j] = pad (j+1, countDigits(len)) + DELIMITER + s[j];
                }
            }
            Text = s.join("\n");
        // Конец основного алгоритма нумерации
    }
    // Если текст не выделен, то выдаётся уведомление, и нумерация не производится
    else {
        alert ("Тест не выделен!\nЧтобы произести нумерацию выделите хотя бы один символ.");
        Quit();
    }
}
Quit();

Всего записей: 1022 | Зарегистр. 04-11-2004 | Отправлено: 08:30 30-03-2018 | Исправлено: webern, 09:00 30-03-2018
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Emurasoft EmEditor


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru