Script Content Plugin
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Уважаемые программисты, помогите натстроить/написать скрипт для конкретной цели, пожалуйста.
задача такая: отображать информацию о снятом спектре (научные спектры ЯМР) в списке папок напротив каждой папки.
один спектр хранится в одной папке например /101/ таких папок очень много и каждое имя папки не несет никакой инфрмации, а вся информация о спектре содержится в текстовых файлах внутри каждой папки например:
Название спектра хранится в в первой строчке файла title, файл лежит всегда /101/pdata/1/title
Температура, при которой снят спектр находится в файле /101/acqus в виде ##$TE= 298.0488, номер строки не всегда постоянен, главное то что температура всегда стоит после символов ##$TE=
импульсная последовательность, с помощью которой снят спектр находится в том же файле /101/aqcus, но после символов ##$PULPROG= например ##$PULPROG= <zgesgp>
и так далее, число накоплений, например, в файле /101/aqcus ##$NS= 128
Очень хочется чтобы плагин, все время "заглядывал" во внутренности каждой папки искал нажные параметры и выводил в виде разных колонок сразу рядом с названием папки.
Насколько я понял, это в принципе возможно, но я не понимаю, как написать скрипт, который будет делать такую штуку.
Очень прошу, тех, кому это не составит труда, помочь на благо Российской науке.
Спасибо.
задача такая: отображать информацию о снятом спектре (научные спектры ЯМР) в списке папок напротив каждой папки.
один спектр хранится в одной папке например /101/ таких папок очень много и каждое имя папки не несет никакой инфрмации, а вся информация о спектре содержится в текстовых файлах внутри каждой папки например:
Название спектра хранится в в первой строчке файла title, файл лежит всегда /101/pdata/1/title
Температура, при которой снят спектр находится в файле /101/acqus в виде ##$TE= 298.0488, номер строки не всегда постоянен, главное то что температура всегда стоит после символов ##$TE=
импульсная последовательность, с помощью которой снят спектр находится в том же файле /101/aqcus, но после символов ##$PULPROG= например ##$PULPROG= <zgesgp>
и так далее, число накоплений, например, в файле /101/aqcus ##$NS= 128
Очень хочется чтобы плагин, все время "заглядывал" во внутренности каждой папки искал нажные параметры и выводил в виде разных колонок сразу рядом с названием папки.
Насколько я понял, это в принципе возможно, но я не понимаю, как написать скрипт, который будет делать такую штуку.
Очень прошу, тех, кому это не составит труда, помочь на благо Российской науке.
Спасибо.
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
А нет ли где-нибудь примера js скрипта для этого плагина, а то в архиве пример не слишком информативный?
Добавлено спустя 5 минут:
Упс... Нашел Здесь
Добавлено спустя 5 минут:
Упс... Нашел Здесь
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
Смайлик тому свидетель.
А что на оффсайте пишут? Я в подробности по поводу js не вдавался.
А что на оффсайте пишут? Я в подробности по поводу js не вдавался.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
[cut="Чуток оффтопа"]
Esc-последовательности в строках и необходимое из-за них экранирование спец-символов являются стандартными особенностями JS. Как и многих других языков программирования, кстати говоря.[/cut]
Ну я как бы предполагал знание языка (или хотя бы желание в нём разобраться)…Serge Yolkin писал(а):А мне CaptainFlint советовал с помощью этого плагина исполняшки парсить...
Почему же, ё-моё, ты нигде не пишешь "ё"?
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
CaptainFlint
Я в курсе. Плагин передаёт в скрипт переменную filename, как строку с незадвоенными слэшами, поэтому скрипт (js)выводит полное имя без слэшей, а если какой-то элемент пути начинается с u, b и т.д. - считает это эскейп последовательностью (правильной, или неправильной: например, для u в колонку выводится "Предполагается шестнадцатеричное число"). Задвоить слэши из скрипта уже не получится:выдаёт те же ошибки с u, а для всех остальных файлов - всегда false.
Или "желание в нём разобраться" относилось к VBS?
Добавлено спустя 9 минут:
Я в курсе. Плагин передаёт в скрипт переменную filename, как строку с незадвоенными слэшами, поэтому скрипт (js)
Код: Выделить всё
Content=filename;Код: Выделить всё
Content=/\\/.test(filename);Или "желание в нём разобраться" относилось к VBS?
Добавлено спустя 9 минут:
А там единственный пример на js - и тот нерабочий.Flasher писал(а):А что на оффсайте пишут?
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Serge Yolkin
Тогда я неправильно понял суть проблемы. Я думал, в JS-скрипт была скопирована строчка из VBS-скрипта с одинарными слэшами. А если текст лежит в переменной, то там не должно быть таких проблем. Esc-последовательности срабатывают только при считывании и разборе JS-скрипта движком. Т. е. когда он в исходном коде компилируемого скрипта встречает, например, строчку с последовательностью "\n", то трактует это особым образом (подставляет в итоговую строку не эти два символа, а конец строки). Но если у него уже есть переменная, содержащая готовую строку с этими двумя символами (обратный слэш и буква "n") — например, он прочитал эту строку из файла — то, разумеется, он ни в коем случае не будет её трактовать как конец строки. (Разве что подставишь её в eval, когда содержимое строки компилируется и выполняется как новый скрипт.)
К сожалению, я слишком давно копался с этим плагином и уже не помню деталей взаимодействия его со скриптами, поэтому сходу пока не могу понять, по какому маршруту тут бегают строки и в какой момент они трактуются таким неожиданным образом.
Тогда я неправильно понял суть проблемы. Я думал, в JS-скрипт была скопирована строчка из VBS-скрипта с одинарными слэшами. А если текст лежит в переменной, то там не должно быть таких проблем. Esc-последовательности срабатывают только при считывании и разборе JS-скрипта движком. Т. е. когда он в исходном коде компилируемого скрипта встречает, например, строчку с последовательностью "\n", то трактует это особым образом (подставляет в итоговую строку не эти два символа, а конец строки). Но если у него уже есть переменная, содержащая готовую строку с этими двумя символами (обратный слэш и буква "n") — например, он прочитал эту строку из файла — то, разумеется, он ни в коем случае не будет её трактовать как конец строки. (Разве что подставишь её в eval, когда содержимое строки компилируется и выполняется как новый скрипт.)
К сожалению, я слишком давно копался с этим плагином и уже не помню деталей взаимодействия его со скриптами, поэтому сходу пока не могу понять, по какому маршруту тут бегают строки и в какой момент они трактуются таким неожиданным образом.
Почему же, ё-моё, ты нигде не пишешь "ё"?
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12
CaptainFlint
Боюсь накосячить с терминологией, но, насколько я понял, плагин использует для связи со скриптом две (больше, но остальные пока не в счёт) глобальные переменные: Content и filename (в скрипте они должны определяться без var, т.е. как глобальные). В первой - результат работы скрипта передаётся в плагин, во второй - имя файла передаётся плагином в скрипт. Вот во второй переменной и затык. Полное имя туда пишется как есть, а скрипт это прочитать не может.
Боюсь накосячить с терминологией, но, насколько я понял, плагин использует для связи со скриптом две (больше, но остальные пока не в счёт) глобальные переменные: Content и filename (в скрипте они должны определяться без var, т.е. как глобальные). В первой - результат работы скрипта передаётся в плагин, во второй - имя файла передаётся плагином в скрипт. Вот во второй переменной и затык. Полное имя туда пишется как есть, а скрипт это прочитать не может.
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Serge Yolkin
Поставил себе этот плагин, потестил. Похоже, проблема в самом плагине. Я не знаю, как он передаёт имя файла в скрипт (к сожалению, исходников нет), но такое поведение заставляет предположить, что движку просто скармливается строка вида
Естественно, при такой обработке проклюнутся все эти наблюдаемые эффекты с заменой \n на конец строки, \t на табуляцию и т. д. Если так, то это однозначный баг плагина, который обойти, наверное, никак не получится. 
Товарищ Lev, можно ли услышать какие-нибудь комментарии на этот счёт?
Поставил себе этот плагин, потестил. Похоже, проблема в самом плагине. Я не знаю, как он передаёт имя файла в скрипт (к сожалению, исходников нет), но такое поведение заставляет предположить, что движку просто скармливается строка вида
Код: Выделить всё
'var filename = "' + filename + '";'Товарищ Lev, можно ли услышать какие-нибудь комментарии на этот счёт?
Почему же, ё-моё, ты нигде не пишешь "ё"?
-
Serge Yolkin
- Сообщения: 664
- Зарегистрирован: Сб июл 25, 2009 11:12