[ID CC2022] Перестал работать скрипт

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68
Добрый день. Подскажите пожалуйста, в чем может быть причина того, что ранее работающий скрипт ( например на версии CS5) отказывается работать на более поздних версиях (2022 например). Скрипт рисует пачкой штрихкода, делает папки для их группировки и т.д. Он продолжает это делать, но файлы "пустые", хотя все переменные назначаются. Подозреваю, что проблема где-то в этом куске -
//------------------------------------------------ Write -------------------------------------------------------------
function WriteToFile(myText) {

//var folderPath = "D:/temp/temp/"
var success = Folder(psFolder).create(); //

myFile = new File(psFolder + "/" + BarcodeBaze + " " + psFile + ".ps");
if ( myFile.exists ) {
exit;
}
else {
myFile.open("w");
}
myFile.write(myText);
myFile.close();
}
 

densen

15 лет на форуме
Сообщения
753
Реакции
642
Он продолжает это делать, но файлы "пустые", хотя все переменные назначаются.
Если файлы "пустые", значит переменная myText имеет в себе "ничего", и именно это "ничего" и записывается в файл. Всё честно. Остается узнать, что заносится в переменную myText.
 

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68
Если файлы "пустые", значит переменная myText имеет в себе "ничего", и именно это "ничего" и записывается в файл. Всё честно. Остается узнать, что заносится в переменную myText.
это я проверял - вроде все на месте

1709109803968.png
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Проверить myFile.fsName. Туда ли оно все пишется.
 

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68
Проверить myFile.fsName. Туда ли оно все пишется.
извините, я не понял
оно как раз НЕ пишется :) myFile.fsName я в коде не нашел
папка и сам файл создается, но он нулевого размера
при этом, если я ставлю вместо (myText) вот так - myFile.write(app.activeDocument.fullName);
то путь пишется.
хотя myText определен
1709132326081.png
 
Последнее редактирование:

Drawer

Участник
Сообщения
1 816
Реакции
799

plumbum

Участник
Сообщения
52
Реакции
13
psFolder где определена? какое значение в итоге получается в myFile? (есть тестовый folderPath - хорошей привычкой было бы не писать слеш в конце путей, а добавлять разделитель при необходимости - как и просходит в вашем коде) что возвращает myFile.write true false ? возможно проблема с областью видимости psFolder
 

plumbum

Участник
Сообщения
52
Реакции
13
и что на момент в BarcodeBaze ? также лучше явно указать кодировку myFile.encoding = 'UTF-8';
 

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68
alert(typeof myText) что даст?
похоже дело в кодировке. Я преобразовал (вроде бы) основную часть .ps кода (во внешнем файле) и txt файл с основой для штрих-кода в UTF-16 LE BOM и файлы начали писаться, но почему-то результирующий .ps файл имеет кодировку ANSI
подскажите пожалуйста, как правильно задать "UTF-16 LE BOM" в скрипте?
пока в коде стоит file.encoding = "UTF-8"; работает, но наверное это не правильно
 

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68

Не по теме:


А в чем вообще сермяга делать это скриптом индизайна???

это быстро и удобно
в txt файле пишется имя (название журнала например) и через tab основа для штрихкода, с этого генерируется необходимое кол-во штрихкодов в виде .ps файлов разложенных по своим папкам, которые в свою очередь драг-н-дропом закидыаются в тот-же индизайн. В то время, когда я его делал это был наиболее удобный и очевидный для меня способ. Увы, не было вас, чтобы подсказать более правильное решение. :)
 

Drawer

Участник
Сообщения
1 816
Реакции
799
драг-н-дропом закидыаются в тот-же индизайн
Получается что ID тут вообще с боку припеку?:) Ладно бы
основа для штрихкода
в ID файле была прописана в нужном месте и ШК формировался бы и втягивался сразу в нужное место :)
Но использовать JS ID для того чтобы просто обработать текстовый файл, когда это можно сделать VBS или просто батником, как то странным кажется :)
Какой тип ШК кстати?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
Откуда вообще берется myText?
Может, вообще "binary" ставить надобно?
 

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68
Получается что ID тут вообще с боку припеку?:) Ладно бы

в ID файле была прописана в нужном месте и ШК формировался бы и втягивался сразу в нужное место :)
Но использовать JS ID для того чтобы просто обработать текстовый файл, когда это можно сделать VBS или просто батником, как то странным кажется :)
Какой тип ШК кстати?
эм.... первую фразу не понял
Была задача - сделать для кучи журналов штрихкода. Задача была решена. Я не пойму в чем проблема?
Да, наверняка это можно было сделать VBS, возможно батником, наверняка прямо в pdf подставлять нужную основу тоже можно. Можно сделать это в 3D MAX (еще и объемными). Очень вероятно. что это можно реализовать средствами С++ или php в svg - еще и на веб страничках можно было бы это притулить...
я не пойму про что мы сейчас говорим?
Есть проблема - я ищу пути решения ЭТОЙ проблемы, а не изучаю альтернативные варианты построения штрихкодов.

Там два штрихкода предусмотрено - ISNN или EAN-13 (опять-же таковы ТЗ)
 

Drawer

Участник
Сообщения
1 816
Реакции
799

Drawer

Участник
Сообщения
1 816
Реакции
799

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68
Откуда вообще берется myText?
Может, вообще "binary" ставить надобно?
myText это сборная солянка :)
____
WriteToFile(BarcodeMain + LastLineStart + BarcodeBaze + " " + psFile + LastLineEnd);

//------------------------------------------------ Write -------------------------------------------------------------
function WriteToFile(myText)
____
BarcodeMain - это основная часть .ps файла (там прописан принцип построения штрихкода)
LastLineStart - тут задан физический размер будущего штрихкода
BarcodeBaze - это подставляется сам штрихкод (цифры, по которым рисуются полоски)
psFile это правая часть штрихкода (дополнительное поле)
LastLineEnd - финальная часть .ps файла
В общем можно имея любой готовый .ps файл с штрихкодом менять в нужном месте цифры и сохраняя получать новый штрихкод. Но когда нужно сделать десятки или сотни подобных кодов - удобнее этот процесс автоматизировать.

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

DrEgor

Участник
Топикстартер
Сообщения
774
Реакции
68
Ну, Вы решили проблему... но ее бы вероятно и не было, если бы Вы не использовали JS ID :) Я об этом :)
вы зело не внимательны :( проблема все еще не решена.
файл пишется, но не верно интерпретируется!

не было бы проблемы. если бы разработчики не начали мутить что-то с кодировками.
это старый скрипт, ему лет 7 наверное
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 229
Реакции
10 851
myText это сборная солянка :)
____
WriteToFile(BarcodeMain + LastLineStart + BarcodeBaze + " " + psFile + LastLineEnd);

//------------------------------------------------ Write -------------------------------------------------------------
function WriteToFile(myText)
____
BarcodeMain - это основная часть .ps файла (там прописан принцип построения штрихкода)
LastLineStart - тут задан физический размер будущего штрихкода
BarcodeBaze - это подставляется сам штрихкод (цифры, по которым рисуются полоски)
psFile это правая часть штрихкода (дополнительное поле)
LastLineEnd - финальная часть .ps файла
В общем можно имея любой готовый .ps файл с штрихкодом менять в нужном месте цифры и сохраняя получать новый штрихкод. Но когда нужно сделать десятки или сотни подобных кодов - удобнее этот процесс автоматизировать.

Думаю проще было бы просто менять в исходнике нужные данные, но все умны задним числом, а в то время я почти так-же далек от скриптинга как и сейчас. Потому вот.
Я так же далек от понимания того, как формируется myText, как и до вашего ответа. :(
Уточняю вопрос: как формируются переменные BarcodeMain,LastLineStart,BarcodeBaze,psFile,LastLineEnd? Их скрипт заполняет или читает откуда?