Поиск/Замена. Баг?

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

Agent007

Участник
Топикстартер
Сообщения
17
Реакции
0
Вопрос такой, скажите это баг или нет, я подозреваю что ИД CS3 не до конца обнуляет поиск, всвязи с этим неккоректнго работают некоторые скрипты, простая перезагрузка ИД не спасает ситуацию, только после перезагрузки компа. Можно это как-то побороть?
 
Ответ: Поиск/Замена. Баг?

Подробнее, плиз. Думаю, что это скорее скрипты забывают за собой подчищать.
 
Ответ: Поиск/Замена. Баг?

В том-то и дело что не скрипты, везеде стоит обнуление, в частности не корректно работает Зам, несколько раз подряд приходиться запускать, иначе не все чистит то что должен. После перезагрузки компа первый раз все проходит отлично, но потом начинаються проблемы.
 
Ответ: Поиск/Замена. Баг?

Ну это ИМХО к автору скрипта скорее...
 
Ответ: Поиск/Замена. Баг?

Неуверен, писал сам скрипт связанный с заменой, плюс Szam, плюс другие скрипты связанные так же с заменой, почти уверен что в них нет проблем. Версия ИД 5.0, если поставить обновление это спасет ситуацию? Никто с этим не сталкивался?
 
Ответ: Поиск/Замена. Баг?

Фантастика какая-то...

Может покажите что писали, и что неправильно работает?
 
Ответ: Поиск/Замена. Баг?

[/OFF] findGrepPreferences = null;
changeGrepPreferences = null;
with(app){
if(app.documents.length==0){
alert("Нет открытых документов!");
exit();
}
myDoc = app.activeDocument;
myStyles = myDoc.paragraphStyles;
myStylesq = myDoc.objectStyles;
myStringList = myStyles.everyItem().name;
myStringListq = myStylesq.everyItem().name;

myStyleswyu = app.findGrepPreferences.findWhat


var myDialog = dialogs.add({name:"ОБРАТИТЕ ВНИМАНИЕ"});
with (myDialog.dialogColumns.add()) {

with (dialogRows.add().borderPanels.add(5).dialogColumns.add()) {
with (dialogRows.add()) {
staticTexts.add({staticLabel:"ОБРАТИТЕ ВНИМАНИЕ: "});
}
with (dialogRows.add()) {
staticTexts.add({staticLabel:"ParagraphStyle: "});
var myDialogParagraphStyle = dropdowns.add({stringList:myStringList, selectedIndex:0});
with (dialogRows.add()) {
staticTexts.add({staticLabel:"ObjectStyle: "});
var myDialogObjectStyle = dropdowns.add({stringList:myStringListq, selectedIndex:0});

}
}


}


}
var myRes = myDialog.show();
if (!myRes) {
myDialog.destroy();
exit();
}
myStyleIndex = myDialogParagraphStyle.selectedIndex;
myStyleIndexq = myDialogObjectStyle.selectedIndex;
findGrepPreferences = null;
changeGrepPreferences = null;
app.findGrepPreferences.findWhat = "(Обратите внимание)((.*\r)*?)(\\(конец\\))"
changeGrepPreferences.appliedParagraphStyle = (myStyles[myStyleIndex]);
myCases = myDoc.findGrep();
myCh = myDoc.changeGrep();
appliedParagraphStyle = (myStyles[myStyleIndex]);
for (i =myCases.length - 1; i >=0 ; --i)
{
app.select(myCases);
}
}
app.changeGrepPreferences = null;
app.findGrepPreferences = null;
Не по теме:





Условно говоря как образец. Ищет после перезагрузки все нормально, потом перестает искать

 
Ответ: Поиск/Замена. Баг?

Сорри что нев тегах, незнаю как прикрепить правельно)
 
Ответ: Поиск/Замена. Баг?

тег CODE
 
Ответ: Поиск/Замена. Баг?

Думаю, что из-за \r не ищет. Поставь вместо него $.
 
Ответ: Поиск/Замена. Баг?

поставил $., перестал искать даже после перезагрузки
Вот кусок рабочего скрипта
Код:
with(app){
	if(app.documents.length==0){
		alert("Нет открытых документов!");
		exit();
	}
	myDoc = app.activeDocument;
	myStyles = myDoc.paragraphStyles;
	myStylesq = myDoc.objectStyles;
	myStringList = myStyles.everyItem().name;
	myStringListq = myStylesq.everyItem().name;
	
	myStyleswyu = app.findGrepPreferences.findWhat
	
	
	var myDialog = dialogs.add({name:"ОБРАТИТЕ ВНИМАНИЕ"});
	with (myDialog.dialogColumns.add()) {
	
	with (dialogRows.add().borderPanels.add(5).dialogColumns.add()) {		
with (dialogRows.add()) {
				staticTexts.add({staticLabel:"ОБРАТИТЕ ВНИМАНИЕ: "});
				}
	with (dialogRows.add()) {
				staticTexts.add({staticLabel:"ParagraphStyle: "});				
				var myDialogParagraphStyle = dropdowns.add({stringList:myStringList, selectedIndex:0});
				with (dialogRows.add()) {
				staticTexts.add({staticLabel:"ObjectStyle:     "});
				var myDialogObjectStyle = dropdowns.add({stringList:myStringListq, selectedIndex:0});
			}			
		}
		}
	}
	var myRes = myDialog.show();
	if (!myRes) {
		myDialog.destroy();
		exit();
	}	
	myStyleIndex = myDialogParagraphStyle.selectedIndex;
	myStyleIndexq = myDialogObjectStyle.selectedIndex;
	findGrepPreferences = null;
	changeGrepPreferences = null;
	app.findGrepPreferences.findWhat	= "(Обратите внимание)((.*\r)*?)(\\(конец\\))"
	changeGrepPreferences.appliedParagraphStyle = (myStyles[myStyleIndex]);
	myCases = myDoc.findGrep();
	myCh = myDoc.changeGrep();
	appliedParagraphStyle = (myStyles[myStyleIndex]);	
for (i =myCases.length - 1; i >=0 ; --i)
{
app.select(myCases[i]);
}
}
app.changeGrepPreferences = null;
app.findGrepPreferences = null;

if ((app.documents.length == 0) || (app.selection.length == 0)) 
{
exit();
}
myDoc = app.activeDocument;

app.findGrepPreferences.findWhat = "^Обратите внимание.*?$\r"
myCasesqw = myDoc.findGrep();
var iniFile = File.openDialog('Обратите внимание', 'Файлы EPS: *.eps'); 
var iniStyle = (myStylesq[myStyleIndexq]);
for (i =myCasesqw.length - 1; i >=0 ; --i)
{
try 
{
var myObject = myDoc.pages[0].place(new File(iniFile),[0,0],undefined, false);
myObject[0].parent.applyObjectStyle(myDoc.objectStyles.item(myStyleIndexq));
app.select(myObject[0].parent);
app.cut();
app.select(myCasesqw[i]);
app.paste();
} catch (error) 
{
alert("Oblom " + error);

}
app.changeGrepPreferences = null;
app.findGrepPreferences = null;
}
alert("Сделано  " + myCasesqw.length + "   замены");


Пример текста
Код:
Дебиторская задолженность, нереальная ко взысканию, подлежит списанию с баланса учреждения.

Обратите внимание
Обязательным условием списания дебиторской задолженности, нереальной ко взысканию. 
С баланса учреждения является согласование списания с главным распорядителем бюджетных средств, выступающим от имени собственника учреждения, и органом, организующим исполнение бюджета.
(конец) 

Дебиторская задолженность признается безнадежной в следующих случаях:
 
Ответ: Поиск/Замена. Баг?

Ч0рт побери. Я сказал заменить \r на $, что значит, заменить везде.
Да и фраза "^Обратите внимание.*?$\r" как читается?
Для себя вслух прочти и увидишь ее нелепость.
 
Ответ: Поиск/Замена. Баг?

Agent007
Только что запускал представленный скрипт. Ищет и не один раз подряд. Видимо все дело в конкретном экземпляре ID.
vbatushev
Кстати с $ действительно у меня ничего не нашел, а вот с \r нашел и заменил фразу "Обратите внимание" на картинку.
PHP:
...
app.findGrepPreferences.findWhat = "(Обратите внимание)((.*\r)*?)(\\(конец\\))";
...
app.findGrepPreferences.findWhat = "^Обратите внимание.*?\r";
...
 
Ответ: Поиск/Замена. Баг?

Ищет в таком виде
(Обратите внимание)((.*\r)*?)(\\(конец\\)$)
Так нет
(Обратите внимание)((.*$)*?)(\\(конец\\)$)
А фраза
"^Обратите внимание.*?$\r"
это мой косяк, спасибо немного не доглядел, уже поправил, вместо этой фразы он будет ставить картинку)
 
Ответ: Поиск/Замена. Баг?

Угу, в середине, наверное, не есть правильно $ совать.
А вообще чрезвычайно полезно читать вслух. Это я как преподаватель русского языка и литературы вам говорю.
 
Статус
Закрыто для дальнейших ответов.