[ID CC-CC2021] Переместить текст скриптом

UserD

Топикстартер
15 лет на форуме
Сообщения
48
Реакции
1
Доброго времени уважаемым форумчанам!
Имеется текстовый блок. Необходимо от текущего положения курсора и до конца блока найти все фрагметы текста, соответствующие GREP-шаблону и последовательно переместить последовательно после текущего положения курсора.
Подскажите, как реализовать сие скриптом?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
что именно вызывает трудности? или вопрос на самом деле звучит как "напишите мне скрипт целиком"?
 
  • Спасибо
Реакции: ~RA~

_MBK_

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

UserD

Топикстартер
15 лет на форуме
Сообщения
48
Реакции
1
вызывает затруднение как найти кусок текста, соответствующий GREP. Через .findGrep() что-то у меня не получается :(
 
Последнее редактирование:

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну а что не получается? давайте код, будем смотреть
 

UserD

Топикстартер
15 лет на форуме
Сообщения
48
Реакции
1
вот кусок из скрипта:
Код:
var mySel = app.selection[0];

app.findGrepPreferences = null;
app.changeGrepPreferences = null;

strToSearch = " \\d{1,3}";

app.findGrepPreferences.findWhat = strToSearch;
found = mySel.findGrep();
alert(found);
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а проверьте, что у вас в выделенном
alert(app.selection[0].contents)
 

UserD

Топикстартер
15 лет на форуме
Сообщения
48
Реакции
1
Приведенный фрагмент это только часть от общего, чтобы суть понять. В данном, конкретном, случае подразумевается что текст выделен и alert(.contents) не пустой.
Я не могу с found совладать: вроде не пустой, а found.contents undefined.
Куда копать?
 

UserD

Топикстартер
15 лет на форуме
Сообщения
48
Реакции
1
Подскажите, пожалуйста, как тогда достучаться до содержимого?
Нет более надежного учителя, чем опыт. разобрался вроде
Код:
(found[i].contents)
И еще: в found = mySel.findGrep(); будут все найденые GREP-ы, во всего блока? тогда, каим образом отсеить те, которые от курсора до конца от тех, которые до текущего положения курсора?
Спасибо
 
Последнее редактирование:

UserD

Топикстартер
15 лет на форуме
Сообщения
48
Реакции
1
Реализация ТЗ (не ментальног :) ) приобрела следующий вид (может кому интересно...):
Код:
if(app.documents.length != 0){
    if(app.selection.length == 1 ){
        switch(app.selection[0].constructor.name){
            case "Text":
            case "TextColumn":
            case "TextFrame":
                if(app.selection[0].paragraphs.length > 1){
                    myMoveText();
                       exit();
                }
            }
        }
    }
alert("У-упс!");

function myMoveText (){
    var mySel = app.selection[0];
 
    app.findGrepPreferences = null;
    app.changeGrepPreferences = null;

    strToSearch = prompt ("Можно использовать регулярные выражения!", "\\d{1,3}[\\.,]\\s", "Чё искат-то будем...");

    app.findGrepPreferences.findWhat = strToSearch;
    found = mySel.findGrep();
    app.selection[0].insertionPoints[0].select();
    for (i=0; i < found.length; i++ ){
        app.selection[0].insertionPoints[0].contents = found[i].contents;
        }
 }

Всем приобщившимся - низкий поклон.

П.С. Поскольку заголовок темы был не совсем коректен (объявлялось о перемещении, а получилось копирование), может кто подскажет что получится в found = mySel.changeGrep(), и как реализовать перемещение, ибо сам не силен...
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Заменить старые на пустышки ;)