Страница 6 из 16

Добавлено: Ср июл 03, 2013 13:13
KAC
Уважаемые программисты, помогите натстроить/написать скрипт для конкретной цели, пожалуйста.
задача такая: отображать информацию о снятом спектре (научные спектры ЯМР) в списке папок напротив каждой папки.
один спектр хранится в одной папке например /101/ таких папок очень много и каждое имя папки не несет никакой инфрмации, а вся информация о спектре содержится в текстовых файлах внутри каждой папки например:
Название спектра хранится в в первой строчке файла title, файл лежит всегда /101/pdata/1/title
Температура, при которой снят спектр находится в файле /101/acqus в виде ##$TE= 298.0488, номер строки не всегда постоянен, главное то что температура всегда стоит после символов ##$TE=
импульсная последовательность, с помощью которой снят спектр находится в том же файле /101/aqcus, но после символов ##$PULPROG= например ##$PULPROG= <zgesgp>
и так далее, число накоплений, например, в файле /101/aqcus ##$NS= 128

Очень хочется чтобы плагин, все время "заглядывал" во внутренности каждой папки искал нажные параметры и выводил в виде разных колонок сразу рядом с названием папки.
Насколько я понял, это в принципе возможно, но я не понимаю, как написать скрипт, который будет делать такую штуку.
Очень прошу, тех, кому это не составит труда, помочь на благо Российской науке.
Спасибо.

Добавлено: Вт окт 15, 2013 13:01
Serge Yolkin
А нет ли где-нибудь примера js скрипта для этого плагина, а то в архиве пример не слишком информативный?

Добавлено спустя 5 минут:

Упс... Нашел Здесь

Добавлено: Ср окт 16, 2013 00:36
Serge Yolkin
Гы... Найденный пример не работал по дурацкой причине: если в vbs переменная content обрабатывается, то в js надо писать имя переменной с большой буквы. Вероятно, и с ContentsN то же - ещё не проверял.

Lev, а плагин ещё поддерживается?

Добавлено: Ср окт 16, 2013 00:49
Flasher
Serge Yolkin
Давно нет. Он вообще очень короткое время поддерживался.

Добавлено: Ср окт 16, 2013 01:15
Serge Yolkin
Жаль... А то там в js пути без слэшей передаются (видимо не задвоены), а если что-то с u начинается, то плагин это считает \u и ждет дальше кода символа. С b тоже прикольно. А мне CaptainFlint советовал с помощью этого плагина исполняшки парсить...

Добавлено: Ср окт 16, 2013 01:21
Flasher
Тогда VBS. :D

Добавлено: Ср окт 16, 2013 01:45
Serge Yolkin
Да не знаю я Васика...

Добавлено: Ср окт 16, 2013 01:55
Flasher
Смайлик тому свидетель. :roll:

А что на оффсайте пишут? Я в подробности по поводу js не вдавался.

Добавлено: Ср окт 16, 2013 02:34
CaptainFlint
[cut="Чуток оффтопа"]
Serge Yolkin писал(а):А мне CaptainFlint советовал с помощью этого плагина исполняшки парсить...
Ну я как бы предполагал знание языка (или хотя бы желание в нём разобраться)… :) Esc-последовательности в строках и необходимое из-за них экранирование спец-символов являются стандартными особенностями JS. Как и многих других языков программирования, кстати говоря.[/cut]

Добавлено: Ср окт 16, 2013 07:49
Serge Yolkin
CaptainFlint
Я в курсе. Плагин передаёт в скрипт переменную filename, как строку с незадвоенными слэшами, поэтому скрипт (js)

Код: Выделить всё

Content=filename;
выводит полное имя без слэшей, а если какой-то элемент пути начинается с u, b и т.д. - считает это эскейп последовательностью (правильной, или неправильной: например, для u в колонку выводится "Предполагается шестнадцатеричное число"). Задвоить слэши из скрипта уже не получится:

Код: Выделить всё

Content=/\\/.test(filename);
выдаёт те же ошибки с u, а для всех остальных файлов - всегда false.

Или "желание в нём разобраться" относилось к VBS?

Добавлено спустя 9 минут:
Flasher писал(а):А что на оффсайте пишут?
А там единственный пример на js - и тот нерабочий.

Добавлено: Ср окт 16, 2013 20:15
CaptainFlint
Serge Yolkin
Тогда я неправильно понял суть проблемы. Я думал, в JS-скрипт была скопирована строчка из VBS-скрипта с одинарными слэшами. А если текст лежит в переменной, то там не должно быть таких проблем. Esc-последовательности срабатывают только при считывании и разборе JS-скрипта движком. Т. е. когда он в исходном коде компилируемого скрипта встречает, например, строчку с последовательностью "\n", то трактует это особым образом (подставляет в итоговую строку не эти два символа, а конец строки). Но если у него уже есть переменная, содержащая готовую строку с этими двумя символами (обратный слэш и буква "n") — например, он прочитал эту строку из файла — то, разумеется, он ни в коем случае не будет её трактовать как конец строки. (Разве что подставишь её в eval, когда содержимое строки компилируется и выполняется как новый скрипт.)

К сожалению, я слишком давно копался с этим плагином и уже не помню деталей взаимодействия его со скриптами, поэтому сходу пока не могу понять, по какому маршруту тут бегают строки и в какой момент они трактуются таким неожиданным образом.

Добавлено: Ср окт 16, 2013 21:57
Serge Yolkin
CaptainFlint
Боюсь накосячить с терминологией, но, насколько я понял, плагин использует для связи со скриптом две (больше, но остальные пока не в счёт) глобальные переменные: Content и filename (в скрипте они должны определяться без var, т.е. как глобальные). В первой - результат работы скрипта передаётся в плагин, во второй - имя файла передаётся плагином в скрипт. Вот во второй переменной и затык. Полное имя туда пишется как есть, а скрипт это прочитать не может.

Добавлено: Ср окт 16, 2013 23:22
CaptainFlint
Serge Yolkin
Поставил себе этот плагин, потестил. Похоже, проблема в самом плагине. Я не знаю, как он передаёт имя файла в скрипт (к сожалению, исходников нет), но такое поведение заставляет предположить, что движку просто скармливается строка вида

Код: Выделить всё

'var filename = "' + filename + '";'
Естественно, при такой обработке проклюнутся все эти наблюдаемые эффекты с заменой \n на конец строки, \t на табуляцию и т. д. Если так, то это однозначный баг плагина, который обойти, наверное, никак не получится. :(

Товарищ Lev, можно ли услышать какие-нибудь комментарии на этот счёт?

Добавлено: Ср окт 16, 2013 23:40
Serge Yolkin
Уф-ф... Есть подтверждение. А то я свою Win 8.1 Preview подозревать начал. С IE11 вместе.

Добавлено: Ср окт 16, 2013 23:46
Flasher
Serge Yolkin
Передавай content через ScriptControl.