[ID CS4-CS6] Перевод времени на час вперед

red-pavel

Топикстартер
12 лет на форуме
Сообщения
36
Реакции
0
Есть скрипт для перевода времени на час вперед. Но у него есть одна небольшая проблема. Он переводит время только в одном фрейме. Что поменять для того чтобы он переводил время во всех выделенных фреймах? Скрин скрипта прикрепляю.
Заранее спасибо.
 

Вложения

  • время.jpeg
    время.jpeg
    273 КБ · Просм.: 616

Jeine

Да здравствует разум! Да сгинет маразм!
15 лет на форуме
Сообщения
7 245
Реакции
6 279

George

I wish I was a monster you think I am
15 лет на форуме
Сообщения
17 301
Реакции
7 863

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
JavaScript:
var langAlertNoDoc = localize({en: "No documents are open!", ru: "Нет открытых документов!"});
var langAlertNoText = localize({en: "No texts are selected!", ru: "Не выбран текст!"});

var iniIncrease = 4;
var iniTimeDivider = ".";

function increase (myTime) {
  var myArr = myTime.split(iniTimeDivider);
  myHour = Number(myArr[0]) + iniIncrease;
  if (myHour > 24) {
    myHour -= 24;
  }
  if (myHour < 0 ) {
    myHour = 24 + myHour;
  }
  if (String(myHour).length < 2) {
    myHour = "0" + String(myHour);
  }
  var myResult = String(myHour) + iniTimeDivider + myArr[1];
  return myResult;
}

with (app) {
  try {
    var myDoc = activeDocument;
  } catch (error) {
    alert(langAlertNoDoc);
    exit();
  }
  try {
    var myStory = selection[0].parentStory;
  } catch (error) {
    alert(langAlertNoText);
    exit();   
  }
  var myFindString = "^9^9" + iniTimeDivider + "^9^9";
  findPreferences = null;
  changePreferences = null;
  var myTimes = myStory.search(myFindString);
  myTimes.reverse();
  for (var myCounter = 0; myCounter < myTimes.length; myCounter++) {
    myTimes[myCounter].contents = increase(myTimes[myCounter].contents);
  }
  findPreferences = null;
  changePreferences = null; 
}
 

red-pavel

Топикстартер
12 лет на форуме
Сообщения
36
Реакции
0
Код:
app.scriptPreferences.version = 3;
var langAlertNoDoc = localize({en: "No documents are open!", ru: "Нет открытых документов!"});
var langAlertNoText = localize({en: "No texts are selected!", ru: "Не выбран текст!"});

var iniIncrease = 1;
var iniTimeDivider = ":";

function increase (myTime) {
  var myArr = myTime.split(iniTimeDivider);
  myHour = Number(myArr[0]) + iniIncrease;
if (myHour >= 24) {
    myHour -= 24;
  }
  if (myHour < 0 ) {
    myHour = 24 + myHour;
  }
  if (String(myHour).length < 2) {
    myHour = "0" + String(myHour);
  }
  var myResult = String(myHour) + iniTimeDivider + myArr[1];
  return myResult;
}

with (app) {
  try {
    var myDoc = activeDocument;
  } catch (error) {
    alert(langAlertNoDoc);
    exit();
  }
  try {
    var myStory = selection[0].parentStory;
  } catch (error) {
    alert(langAlertNoText);
    exit();   
  }
  var myFindString = "^9^9" + iniTimeDivider + "^9^9";
  findPreferences = null;
  changePreferences = null;
  var myTimes = myStory.search(myFindString);
  myTimes.reverse();
  for (var myCounter = 0; myCounter < myTimes.length; myCounter++) {
    myTimes[myCounter].contents = increase(myTimes[myCounter].contents);
  }
  findPreferences = null;
  changePreferences = null; 
}
 

Oleg Butrin

20 лет на форуме
Сообщения
1 989
Реакции
1 213
JavaScript:
var langAlertNoDoc = localize({en: "No documents are open!", ru: "Нет открытых документов!"});
var langAlertNoSelection = localize({en: "No texts objects are selected!", ru: "Не выбраны текстовые объекты!"});

var iniIncrease = 1;
var iniTimeDivider = ":";

Array.prototype.contains = function (element) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] === element) {
            return true;
        }
    }
    return false;
}

function increase (myTime) {
    var myArr = myTime.split(iniTimeDivider);
    myHour = Number(myArr[0]) + iniIncrease;
    if (myHour >= 24) {
        myHour -= 24;
    }
    if (myHour < 0 ) {
        myHour = 24 + myHour;
    }
    if (String(myHour).length < 2) {
        myHour = "0" + String(myHour);
    }
    var myResult = String(myHour) + iniTimeDivider + myArr[1];
    return myResult;
}

function clearFindChangeTextPreferences () {
    app.findTextPreferences = NothingEnum.NOTHING;
    app.changeTextPreferences = NothingEnum.NOTHING;
}

function processStory (story) {
    var times = story.findText(true);
    for (var i = 0; i < times.length; i++) {
        times[i].contents = increase(times[i].contents.toString());
    }
}

function main () {

    if (app.documents.length == 0) {
        alert(langAlertNoDoc);
        return false;
    }

    var doc = app.activeDocument;
    if (app.selection.length == 0) {
        alert(langAlertNoSelection);
        return false;
    }

    var stories = [];
    for (var i = 0; i < app.selection.length; i++) {
        if (app.selection[i].hasOwnProperty('parentStory') && !stories.contains(app.selection[i].parentStory)) {
            stories.push(app.selection[i].parentStory);
        }
    }

    clearFindChangeTextPreferences();
    app.findTextPreferences.findWhat = "^9^9" + iniTimeDivider + "^9^9";
    
    for (var i = 0; i < stories.length; i++) {
        processStory(stories[i]);
    }

    clearFindChangeTextPreferences();
    
    return true;

}

main ();
 
  • Спасибо
Реакции: red-pavel

red-pavel

Топикстартер
12 лет на форуме
Сообщения
36
Реакции
0
Здравствуйте. А возможно ли сделать этот скрипт в обратном направлении, минус час?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Чем лучше?
 

_MBK_

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