ID падает при выполнении моего скрипта

  • Автор темы Автор темы V.V.Putin
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

V.V.Putin

Топикстартер
12 лет на форуме
Сообщения
100
Реакции
0
Неделю назад впервые попробовал использовать скрипты в ИнДизе '%))' , даже не знал как они запускаются '%)' . Сам ИнДиз CS месяца 3-4 первый раз запустил. Референс для скриптинга в Индизе не нашел пока... 'rtfm' Вот первое творение и вторая просьба о помощи

Есть в тв программе , к примеру,

10.00 Х/ф “ВОЗВРАЩЕНИЕ МУХТАРА”.
32 с.


Раньше я вручную убавлял тракинг

10.00 Х/ф “ВОЗВРАЩЕНИЕ МУХТАРА”. 32 с.

Таких случаев немного но ну его на фиг подумал я

Собрал в тхт файл передачи которые хочу сжать и вот такой скрипт собрал (из EndParagraphWords и TextCleanup ) и заточил под себя. Читаем файл, читаем текст из фрейма, если параграф занимает больше одной строчки ищем в строчке кино про мухтара. Если нашли сжимаем (шаг -5) пока параграф не влезет в одну строчку. Вот что получилось

Код:
var mySearchText= new Array();
var i = 0;
var counter = 0;

with (app) {

//Проверяем, что у нас выделено
if ((selection.length == 1)&&((selection[0].constructor.name == "TextFrame"))) {
} else {
 alert("Необходимо вытелить один текстовый фрейм");
 exit();
}
	
  var myStory = selection[0].parentStory;
 // var myStory = selection[0]
//Get the path to the currently-running script.
myScriptFileName = app.activeScript;

//Get a file reference to the script.
myScriptFile = File(myScriptFileName);

//Get a reference to the folder containing the script.
myFolder = myScriptFile.parent;

//Try to find a text file named "TvChange.txt" in the same folder as the script.
myFindChangeFileName = myFolder + "/" + "TvChange.txt";
myFindChangeFile = File(myFindChangeFileName);

//Try to open the file.
myResult = myFindChangeFile.open("r", undefined, undefined);

//If we couldn't find the file, then display a msg box and exit.
if(myResult == false){
	alert("File " + myFindChangeFileName + " not found");
	exit();
}

//Load array
do{
	mySearchText[i]= myFindChangeFile.readln();
	i = i + 1;
}while(myFindChangeFile.eof == false);

myFindChangeFile.close();

// for each paragraph

for (myCounter = 0; myCounter < myStory.paragraphs.length; myCounter++) {
  myPara = myStory.paragraphs[myCounter];
	   
lnCount = myPara.lines.length; //Количество строк в параграфе
		
if (lnCount > 1) { //Если число строк в параграфе больше одной
		  		  
  for ( i = 0; i < mySearchText.length; i++) {
  var	myText= myPara.contents
	//	alert(myText); 
	if (TextFound = myText.search(mySearchText[i])!= -1) {
		counter = counter+1;
			
		while (myPara.lines.length > 1) {
		myPara.tracking = myPara.tracking - 5;
			}
		}
	}
}
	   
}
alert("Найдено: " + counter);
activeDocument.save;
}
Если читаю только один столбец – работает почти всегда, если весь фрейм то чаще всего получаю 'Pkdraka' см.пикчу
Другие скрипты (EndParagraphWords и TextCleanup) нормалек. Проблема однака :confuse:
Буду признателен за помощь
 

Вложения

  • pic1.jpg
    pic1.jpg
    29 КБ · Просм.: 839
Ответ: ID падает при выполнении моего скрипта

Меня очень смущает
PHP:
var myStory = selection[0].parentStory;
Тут было бы уместнее определять тип выделения или обрабатывать весь документ целиком, или плясать от текущей страницы/разворота.
 
Ответ: ID падает при выполнении моего скрипта

kaatm
Переставил ID, скрипт заработал с var myStory = selection[0] (с одной колонкой)нормально. Но с var myStory = selection[0].parentStory лажа
 
Ответ: ID падает при выполнении моего скрипта

Я скопировал код, запускал и с дебаггером, и так. Но никаких ошибок не нашел.

Разве что слово "вытелить" :)
 
Статус
Закрыто для дальнейших ответов.