Создать проверку выделенного текста

mig-z

Client
Регистрация
05.12.2014
Сообщения
305
Благодарностей
71
Баллы
28
При автоматическом создании в ПМ через правый клик по выделенному тексту создается 3 экшена:
1) Взять текст и добавить результат в переменную 1
2) Взять из переменной 1 и скопировать в переменную 2
3) Проверить переменную 2 на неравенство пустоте

Объясните пожалуйста какой смысл практический в шаге 2? Как и где его можно использовать? Разве не логично сразу добавлять текст в переменную 2, а второй шаг вообще исключить?
 

Ribas

Client
Регистрация
31.05.2014
Сообщения
1 440
Благодарностей
503
Баллы
113
Там не копирование вторым шагом идёт, а подготовка JavaScript - на этом шаге экранируются спецсимволы
 
  • Спасибо
Реакции: mig-z

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Я исключаю второй шаг. А в третьем заменяю переменную
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Тоже всегда убираю "Подготовка JavaScript" и меняю переменные.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 415
Благодарностей
5 454
Баллы
113
Интересное кино...
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Убирать второй шаг можно, если в тексте нет спецсимволов
 

Piton2203

Client
Регистрация
08.04.2016
Сообщения
116
Благодарностей
27
Баллы
28
@VladZ Пишу тебе (можно на "ты"?), так как Ростоникс уже не с вами, а я как раз столкнулся с этим делом и никак не могу понять зачем создается второй экшен.
Убирать второй шаг можно, если в тексте нет спецсимволов
А при чем тут спецсимволы? К спецсимволам же имеет отношение escape строки, а не джаваскрипт этот.

"Создать проверку наличия выделенного текста" - создается 3 экшена. Второй - не нужен.
в первом экшене текст ложится в {-Variable.Variable0-} -что правильно. Не пойму зачем нужен второй экшен "Подготовка Джава Скрипт" - в нем делается бессмысленное действие берется значение из {-Variable.Variable0-} и ложится в {-Variable.Variable1-}. И в третьем экшене в иф проверяется есть ли на странице текст из {-Variable.Variable1-}. Почему нельзя пропустить второй экшен и сразу в иф проверить текст из {-Variable.Variable0-} ???

Приведу 2 примера работы экшена "Подготовка ДжаваСкрипт"
1. Кроме того, что в нем нет нужды, так как в первом экшене обрабатывается регулярное выражение и в переменную ложится нормальный текст, кроме этого он сам по себе не пойму что делает в данном случае (экшен "Подготовка ДжаваСкрипт"). При обработке текста с экранированными символами в переменную ложится точно такой же текст с экранированными символами - http://prntscr.com/d3e2rz
2. При обработке обычного текста с точкой - точно такой же текст ложится в переменную - http://prntscr.com/d3e3jt

Как один человек предположил, "возможно это из старых билдов осталось, когда в "взять текст" не было "парсить результат"".
Мелочь, но в следующем билде не мешало бы это исправить, т. к. создается ненужный экшен и ненужная переменная, а их в больших проектах и так хватает, чтоб потом еще разбираться что это за кубик и переменная)
Если вы скажете "зачем трогать то что работает" - я пойму. Может это сложно переделать или далеко не в приоритете, но хотя бы скажите, что да, действительно в данном случае этот кубик лишний, а если нет, хочется узнать почему нет)))
Со всем уважением и без наезда, просто хочу понять)
 

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
134
Баллы
43
даже текст с наличием спецсимвола js - '
корректно определяет при удалении второго кубика и замены переменных.

Такой вариант, что в старых билдах в первом кубике не было "Парсить результат" сразу в regexp, поэтому нужна была обработка спесимволов js (но тоже зачем))
 

Piton2203

Client
Регистрация
08.04.2016
Сообщения
116
Благодарностей
27
Баллы
28
@VladZ через сообщение выше написал сообщение, адресуя его вам, но вы так и не ответили. Наверное, не заметили. Просто решил напомнить )
 

runlike

Client
Регистрация
22.09.2015
Сообщения
175
Благодарностей
51
Баллы
28
Этот шаг никогда не пригождался, как собственно и сам экшен.

Поиск текста на странице может найти текст даже если его там нет. Он его выдирает из кода страницы. Чтобы на 100% быть уверенным, что нужный текст отображается на странице, делаем поиск объекта через конструктор. Ни разу не подводил
 

Piton2203

Client
Регистрация
08.04.2016
Сообщения
116
Благодарностей
27
Баллы
28
@VladZ , я понимаю, что проблема не серьезная, и проблемы может как таковой и нету, скорее просто у меня возник вопрос, на который хотелось бы получить ответ, причем про свой вопрос я уже напоминал ранее, но так как вижу, что отвечаете в других темах, а мне нет, воспринимаю как игнорирование меня, а это считаю очень и очень некрасивым.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
@VladZ , я понимаю, что проблема не серьезная, и проблемы может как таковой и нету, скорее просто у меня возник вопрос, на который хотелось бы получить ответ, причем про свой вопрос я уже напоминал ранее, но так как вижу, что отвечаете в других темах, а мне нет, воспринимаю как игнорирование меня, а это считаю очень и очень некрасивым.
Извините за задержку с ответом. Просто не увидел ваши вопросы.
Дело в том, то само сравнение IF работает в синтаксисе javasctipt. И действие Обработка текста>Подготовка javascript, стоящее перед IF и которые вы считаете ненужным, просто переводит спарсенный текст в этот синтаксис.
 

Piton2203

Client
Регистрация
08.04.2016
Сообщения
116
Благодарностей
27
Баллы
28
Извините за задержку с ответом. Просто не увидел ваши вопросы.
Дело в том, то само сравнение IF работает в синтаксисе javasctipt. И действие Обработка текста>Подготовка javascript, стоящее перед IF и которые вы считаете ненужным, просто переводит спарсенный текст в этот синтаксис.
Не совсем понял, если честно.
1. "сравнение IF работает в синтаксисе javasctipt." - это всегда так или в том конкретном случае?
2. Смотрите. Я первым экшеном забираю текст страницы и в этом же экшене парсю его в переменную. То есть первым экшеном я получаю текст, ставлю галочку на "парсить результат". Мое регулярное выражение "Все\s+изменения\s+сохранены\." В итоге я уже получаю в переменную номер 1 текст "Все изменения сохранены". Потом идет второй экшен, который берет текст "Все изменения сохранены" из переменной номер 1 и ложит этот же текст "Все изменения сохранены" в переменную номер 2. Потом третий кубик сравнивает переменную номер 2 с пустотой. А зачем это делать, если в обоих переменных одинаковый полностью текст и можно без второго кубика сразу в IF сравнить переменную номер 1 с пустотой (исключая ненужную переменную 2 и соответственно один кубик экшена)?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Не совсем понял, если честно.
Потом идет второй экшен, который берет текст "Все изменения сохранены" из переменной номер 1 и ложит этот же текст "Все изменения сохранены" в переменную номер 2. Потом третий кубик сравнивает переменную номер 2 с пустотой. А зачем это делать, если в обоих переменных одинаковый полностью текст и можно без второго кубика сразу в IF сравнить переменную номер 1 с пустотой (исключая ненужную переменную 2 и соответственно один кубик экшена)?
Второй экшн приводит текст в синтаксис Javascript, а не просто копирует текст, например теже спецсимволы про которые говорил ростоникс, нужно привести к систаксису javacript. Смотрите как операция называется - Обработка текста>Подготовка Javascript, а не Копирование текста.
 

Piton2203

Client
Регистрация
08.04.2016
Сообщения
116
Благодарностей
27
Баллы
28
Второй экшн приводит текст в синтаксис Javascript, а не просто копирует текст, например теже спецсимволы про которые говорил ростоникс, нужно привести к систаксису javacript. Смотрите как операция называется - Обработка текста>Подготовка Javascript, а не Копирование текста.
Спецсимволы - это что? Точка, запятая, пробел? Первый же экшен данные спецсимволы прописывает в регексе. Вот я ищу на странице текст "
Землю ждет самая мощная солнечная буря в году: медики посоветовали, как ее пережить"
Там есть и двоеточие, и запятая, и пробелы.
В первом экшене данные спецсимволы экранируются для правильного поиска по странице -
Screenshot_1.jpg


И в переменную уже попадает нужное текстовое выражение, в котором точка - это точка, пробел - это пробел, двоеточие - это двоеточие. Символы как они есть, без экранирования -

Screenshot_2.jpg

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

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Спец символы - это например. перевод строки или возврат каретки.
Подготовка javascript экранирует вот такие символы - \u \x \r \n ' "

Вот пример:
 

Вложения

Piton2203

Client
Регистрация
08.04.2016
Сообщения
116
Благодарностей
27
Баллы
28
Спец символы - это например. перевод строки или возврат каретки.
Подготовка javascript экранирует вот такие символы - \u \x \r \n ' "

Вот пример:
А зачем вообще нужен этот второй экшен подготовки джава-скрипта в данном случае? Всё равно не понятно. ) В этих экшенах какая цель? Найти текст на странице. И нужный текст - он же находится первым экшеном. И третий экшен логики '{-Variable.Variable3-}'!='' - это ведь то же самое что сделать '{-Variable.Variable2-}'!=''. То есть если такой текст есть на странице - он найдется с помощью первого экшена и без участия второго. Третий экшен логики в обоих же случаях найдет, что обе переменные не равны пустоте, так зачем это лишнее движение со вторым экшеном?
Что сам этот экшен делает я наконец понял, но все равно не понятно зачем он здесь нужен)
Честно, не придалбываюсь от нечего делать - реально хочу понять.
Screenshot_1.jpg
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
А зачем вообще нужен этот второй экшен подготовки джава-скрипта в данном случае? Всё равно не понятно. ) В этих экшенах какая цель? Найти текст на странице. И нужный текст - он же находится первым экшеном. И третий экшен логики '{-Variable.Variable3-}'!='' - это ведь то же самое что сделать '{-Variable.Variable2-}'!=''. То есть если такой текст есть на странице - он найдется с помощью первого экшена и без участия второго. Третий экшен логики в обоих же случаях найдет, что обе переменные не равны пустоте, так зачем это лишнее движение со вторым экшеном?
Что сам этот экшен делает я наконец понял, но все равно не понятно зачем он здесь нужен)
Честно, не придалбываюсь от нечего делать - реально хочу понять.
Посмотреть вложение 16799
Вы все считаете что мы нагородили черти что, что на самом деле не нужно)
Дело в том, что при поиске текста можно получить некорректное выражение например если в тексте содержатся кавычки
Текст 'test's'!='' - это не правильно, правильно 'test\'s'!=''
Поговорил с разработчиками, сделают так, что программа будет сравнивать, отличается ли текст при подготовке JavaScript или нет. Если нет, то второй экщн будет опускаться.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)