[ID CC-CC2021] Как в условие записать "все буквы"?

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Условие находится в скриптике обработки списка:
Код:
 ...
if((characters[1].contents == ")") || (characters[1].contents == "."))
        {
        //characters[1].contents = "";
        characters[2].contents = "\t";
        }
То есть я добавляю после скобки или точки табуляцию.
Но если в списке нет номеров или каких иных знаков, а строки начинаются сразу со слов (после импорта из ворда периодически пропадают символы списка), то приходится пользоваться другой строкой:
characters[0].contents = "—" + "\t" + characters[0].contents;
Хотелось бы это записать в одном скрипте. Можно тут как-то записать условие, что если строка начинается с простой буквы, то "делам так"?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
Хотелось бы это записать в одном скрипте. Можно тут как-то записать условие, что если строка начинается с простой буквы, то "делам так"?
Вам проще наоборот сделать. Если есть ) или . , то сделать одно, иначе else другое.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

К.Т.

Участник
Сообщения
323
Реакции
337
Можно тут как-то записать условие, что если строка начинается с простой буквы, то "делам так"?
Например, проверка, находится ли символ в диапазоне от "а" до "я":
(characters[1].contents >= "а") && (characters[1].contents <= "я")

(Но по-моему, всякую подобную обработку текста удобнее делать настроенной последовательностью grep-поисков).
 
  • Спасибо
Реакции: hulk1776

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Условие вставки буллита (тирешки) в начале списочной строки или ее невставки.
Выделяю обрабатываемые абзацы и в цикле их просмотра решается, ставить тире или нет.
Код:
var myText = app.selection[0].paragraphs;
mstyle = app.activeDocument.paragraphStyleGroups.item("mBulls").paragraphStyles.item("mBull_num");
for (i=0; i < myText.length; i++) {
with (myText[i])
{
    //if(characters[0].contents == '\u0091') // длинное тире, почему-то просто указанием символа — не находится
      if((characters[1].contents != ")") && (characters[1].contents != "."))
        { // обработка тирешки в начале списка
        characters[0].contents = "—";
        characters[1].contents = "\t";
        }

//~     if(characters[0].contents == "— ")
    if((characters[1].contents == ")") || (characters[1].contents == "."))
        {
        //characters[1].contents = "";
        characters[2].contents = "\t";
        }
Списки могут быть:
1) найдено
2) не найдено...

1. Найдено
2. Не найдено...


В этих случаях после второго символа нужно ставить tab.
Если список вида
найдено
не найдено...

то перед первым символов надо поставить тире и tab.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Например, проверка, находится ли символ в диапазоне от "а" до "я":
(characters[1].contents >= "а") && (characters[1].contents <= "я")

(Но по-моему, всякую подобную обработку текста удобнее делать настроенной последовательностью grep-поисков).
Только не первый символ, а нулевой. После пары тумаков заработало))
По грепу долго мозговать. А так по ходу текста видишь и оформляешь. Хотя грепом быстрее. На досуге можно подумать.
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Теперь не могу узнать длинное тире в начале списка.
if(((characters[0].contents >= "а") && (characters[0].contents <= "я")) || (characters[0].contents == "~_")){
Инди опять же не видит символ длинного тире в списке типа:
— пункт один
— пункт два...
 

К.Т.

Участник
Сообщения
323
Реакции
337
contents — это текстовое содержимое объекта как оно есть, а не его греп-обозначение.
То есть в данном случае само длинное тире.
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Так вот Индизайн (у меня) и видит даже текст:
if(characters[0].contents == "—"){
Инди считает, что в данном случае условие не выполнено. Хотя строка начинается с длинного тире.
Поэтому хотел по коду чтобы узнавал. Но уже забыл, как записать код EM_DASH'a.
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
contents — это текстовое содержимое объекта как оно есть, а не его греп-обозначение.
То есть в данном случае само длинное тире.
На такую запись
characters[0].contents == \u2014)
пишет — undefined.
Если в одинарных кавычках - не узнает.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Кто пишет и когда?
И почему нельзя алертом код посмотреть первого символа?
Не помню, как записать вызов кода на просмотр. CharAt, CodeChar. То ли по первому символу в выделении, то ли в первому после курсора. Пока ESTK отказалась это показать.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 137
Реакции
10 835