Замены GREP при переносе их в FindChangeByList

  • Автор темы Автор темы arkadii
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Ответ: GREP в InDesign. Что и как

Большое верстальное спасибо и вам!
работает и в text и в grep заменах.
 
Ответ: GREP в InDesign. Что и как

to Skvoznyak
за подсказку с массивами значений спасибо. буду ковырять.

да, с болдами и италиками - это точно. Но пока что у меня тексты без таких выделений, слава богу.
 
Ответ: GREP в InDesign. Что и как

что-то ничего понять не могу..
PHP:
grep	{findWhat:"(\\.|,)([а-яА-Я])"}	{changeTo:"$1 $2"}	{}
не работает в FindChangeByList
а в Query всё хорошо с поиском
PHP:
(\.|,)([а-яА-Я])
 
Ответ: GREP в InDesign. Что и как

sakhar сказал(а):
В дистрибутиве Индизайна есть примеры скриптов, конкретно FindChangeByList.

Вроде дело совсем простое, только я в скриптописании и его языке совсем ничего не смыслю... и, похоже, уже не освою.
Может кто-нибудь составить 4 строки и либо скинуть готовый скрипт, либо подробно расписать, как и что в скрипт надо вставить?

Интересует такой набор замен:
1. 2 пробела -> 1 пробел
2. Дефис -> короткое тире
3. пробел + короткое тире -> неразрывный пробел + короткое тире
4. любые буквы и цифры разделенные "/" (косой) -> присвоить атрибут no break

Понимаю, что халявщики никому не нужны, но может я в какой другой области помочь смогу...
 
Ответ: GREP в InDesign. Что и как

в скриптах есть папка "FindChangeSupport" в ней файл "FindChangeList.txt" в котором описано всё подробно что и как..
PHP:
grep	{findWhat:" +"}	{changeTo:" "}	{includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}	Find all double spaces and replace with single spaces.
выше пример из этого файла.. это строка заменяет один и больше пробелов на один.. дальше я думаю можно разобраться и самому
 
Ответ: GREP в InDesign. Что и как

Hikage сказал(а):
.. дальше я думаю можно разобраться и самому
Честно пытаюсь...

На эти пункты
1. 2 пробела -> 1 пробел
2. Дефис -> короткое тире
3. пробел + короткое тире -> неразрывный пробел + короткое тире

наваялось такое:

Код:
 //FindChangeList.txt
//
grep	{findWhat:"  +"}	{changeTo:" "}	{includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}	Find all double spaces and replace with single spaces.
text	{findWhat:"-"}	{changeTo:"^="}	{includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}	
text	{findWhat:" ^="}	{changeTo:"^S^="}	{includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}


А на п. 4. "любые буквы и цифры разделенные "/" (косой) -> присвоить атрибут no break - пока совсем не придумалось".

Я извиняюсь за необразованность в этом деле, но может быть окажете любезность... кто разбирается в этом - почитает/исправит готовое, добавит нехватающее...

Спасибо.
 
Ответ: GREP в InDesign. Что и как

Зачем рисуем два пробела и указываем один или дофига (+)???
Хотим искать только четное количество пробелов что ли?
Пишем " {2,}"
 
Ответ: GREP в InDesign. Что и как

vbatushev сказал(а):
Зачем рисуем два пробела и указываем один или дофига (+)???
Хотим искать только четное количество пробелов что ли?

Как раз эта строка была в скрипте "по умолчанию"... и так и называлась "поменять все двойные пробелы на один". Чего уж мне с разработчиками было спорить. Кстати, в таком виде она нормально работает - ищет любое число пробелов.

Никак не получается описать вот это:
любые буквы и цифры разделенные "/" (косой) -> присвоить атрибут no break

Пожалуйста, помогите при возможности.
 
Ответ: GREP в InDesign. Что и как

Я предположил, что должно быть что-то, типа

text {findWhat:"^$/^$"} {changeTo:"^$/^$"} {noBreak:true}

Только оно не работает...
 
Ответ: GREP в InDesign. Что и как

Вопросы сняты.
 
Вопрос по поиску символов

Народ!
При поиске из вкладки Grep конструкция "\(" спокоино и устойчиво находит открывающую скобку.
При попытке искать через скрипт FindChangeByList не работает ни" \(" ни "\\("
Как правильно, кто-нибудь знает?
Подскажите, пожалуйста!

PS.: InDes CS3 русский (WinSoft) лицензия, без апдейтов, win XP SP2
 
Ответ: Вопрос по поиску символов

"\\(" Должно работать. Ищите ошибку в другом.
 
Ответ: Вопрос по поиску символов

sakhar сказал(а):
"\\(" Должно работать. Ищите ошибку в другом.
При применении в полном одиночестве - работает!

\((\w+)\). [\d]{4} г.
в InDesign-е ищет строки вида (США). 2001 г.
А скрипте не получается настроить поиск :((
(\\(\\w+\\))
не ищет текст, заключенный в скобки
 
Ответ: GREP в InDesign. Что и как

\\((\\w+)\)\. [\\d]{4} г.
Тоже не работает
И как быть? :(((
 
Ответ: GREP в InDesign. Что и как

Ой, тоесть, конечно:
\\((\\w+)\)\. [\\d]{4} г.
 
Ответ: GREP в InDesign. Что и как

Зачем 2 скобки??? Зачем 2 косых перед w???
Код:
\\([\l\u]+\\)\. \\d{4} г\.
 
Ответ: GREP в InDesign. Что и как

grep {findWhat:"\\([\l\u]+\\)\. \\d{4} г\."} {changeTo:"555"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}
не пашет в скрипте

А эта строка заработала:
grep {findWhat:"\\((\\w+)\\)\. \\d{4} г\."} {changeTo:"444"} {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}

Не пойму, в чем проблема, и у кого глюки, у меня, или у ИнДеза? :))
 
Ответ: Список замен и GREP - FindChangeByList.jsx

я вам дам recorder который переводит с GREP Indesign в findchangebylist.txt

Код:
//RecordFindChange_CS3.jsx   
// version 0.3  
//  
//An InDesign CS3 JavaScript   
//Writes the current find/change preferences to a text file so that you can copy/paste   
//them into a find/change list file.   
  
  
String.prototype.cleanProps = function ()   
{  
    var s = this;  
    // split parameters  
    s = s.replace( /, /g, '\r' );   
    // delete breaks at start and end  
    s = s.replace( /^\({/, '' );   
    s = s.replace( /\}\)$/, '' );   
    // delete undefined  
    s = s.replace( /[\w]+:1851876449\r/g, '' );  
    s = s.replace( /[\w]+:\"\"\r/g, '' );  
    s = s.replace( /[\w]+:null\r/g, '' );  
    // delete some dirty or useless  parameters  
    s = s.replace( /[^\r]+\/@find-[^\r]+\r+/g, '' );  
    s = s.replace( /[^\r]+\/@change-[^\r]+\r+/g, '' );  
    s = s.replace( /parent:resolve\(\"\/\"\)/g, '' );  
    // column or single line  
    if ( singleLine == true )  
    {  
        s = s.replace( /\r\r*/g, ', ' );  
        s = '{' + s + '}';  
        s = s.replace( /, }/g, '}' );     
    }  
    else  
        s.replace( /\r\r+/g, '\r' );  
    return s;  
}  
  
// =================== Preferences / Voreinstellungen ================  
  
// singleLine = true -> Befehlszeilen für findChangeByList.jsx  
// singleLine = false -> Listendarstellung  
var singleLine = true;  
  
// fileSelect = true -> Ausgabedatei selbst bestimmen  
// fileSelect = false -> Ausgabedatei: 'Schreibtisch/findChangeStrings.txt'  
var fileSelect = false;  
  
// TXT-Datei nach Ausführung des Skripts öffnen  
var fileOpen = true;  
  
// Schlussmeldung ausgeben  
var finalMessage = true;  
  
// findChangeTextOptions und findChangeGrepOptions aufzeichnen  
var catchOptions = true;  
// ===============================================================  
  
  
// ===============================================================  
//                                  main / Hauptprogramm  
// ===============================================================  
var myResult;   
var myFindTextProperties = app.findTextPreferences.properties.toSource().cleanProps();  
var myChangeTextProperties = app.changeTextPreferences.properties.toSource().cleanProps();  
var myFindChangeTextOptions = ( catchOptions == true )   
    ? app.findChangeTextOptions.properties.toSource().cleanProps()  
    : '{}';  
  
var myFindGrepProperties = app.findGrepPreferences.properties.toSource().cleanProps();  
var myChangeGrepProperties = app.changeGrepPreferences.properties.toSource().cleanProps();  
var myFindChangeGrepOptions =  ( catchOptions == true )   
    ? app.findChangeGrepOptions.properties.toSource().cleanProps()  
    : '{}';  
  
var myFile = myGetFileName();   
var myData = collectData();  
writeData ( myData );  
if ( finalMessage == true )  
    alert('Fertig!');  
  
// ===============================================================  
//                                  functions / Funktionen  
// ===============================================================  
function myGetFileName()  
{   
    if ( fileSelect == false )  
    {  
        var myFile =  new File( '~/Desktop/findChangeStrings.txt' )  
    }  
    else  
    {  
        if( File.fs != 'Macintosh' )  
        {   
            //Filter files by extension.   
            var myFile = File.saveDialog( 'Save Text File As:', 'Text Files:*.txt;All Files:*' )   
        }   
        else  
        {   
            var myFile = File.saveDialog( 'Save Text File As:' )   
        }   
        if ( myFile == null )  
            exit();  
    }  
    return myFile;   
}  
  
function collectData()  
{  
    if ( singleLine == true )  
    {  
        if ( myFindTextProperties == '{}' && myChangeTextProperties == '{}' )  
        {  
            var myText = '';  
        }  
        else  
        {     
            var myText = 'text' + '\t' +  
                myFindTextProperties + '\t' +  
                myChangeTextProperties + '\t' +  
                myFindChangeTextOptions +   
                '\t//Kommentar\r\r';  
        }  
        if ( myFindGrepProperties != '{}' || myChangeGrepProperties != '{}' )  
        {  
            myText += 'grep' + '\t' +  
            myFindGrepProperties + '\t' +  
            myChangeGrepProperties + '\t' +   
            myFindChangeGrepOptions +  
            '\t//Kommentar';  
        }  
    }  
    else  
    {  
        if ( myFindTextProperties == '' && myChangeTextProperties == '' )  
        {  
            var myText = '';  
        }  
        else  
        {     
            var myText = '//FindTextProperties\r' +   
                myFindTextProperties + '\r\r' +  
                '//ChangeTextProperties\r' +   
                myChangeTextProperties + '\r\r' +  
                '//FindChangeTextOptions\r' +   
                myFindChangeTextOptions + '\r\r';  
        }  
        if ( myFindGrepProperties != '' || myChangeGrepProperties != '' )  
        {  
            myText += '//FindGrepProperties\r' +           
                myFindGrepProperties + '\r\r' +  
                '//ChangeGrepProperties\r' +           
                myChangeGrepProperties + '\r\r' +   
                '//FindChangeGrepOptions\r' +   
                myFindChangeGrepOptions;  
        }  
    }  
    return myText;  
}  
  
function writeData ( aData )  
{  
    if( myFile!='' )  
    {   
        //Open the file for writing.   
        myResult = myFile.open( 'w', undefined, undefined );   
    }  
    if( myResult != false )  
    {      
        myFile.writeln( aData );           
        myFile.close();   
        if ( fileOpen == true )   
            myFile.execute();  
    }   
}

как ползыватся?

в INdesign Grep написать что хочиш --> done --> script --> the script will export an txt-file.
 
Ответ: GREP в InDesign. Что и как

Можно ли при помощи авто замены, заменить символ на объект с картинкой внутри?
 
Статус
Закрыто для дальнейших ответов.