coincidence 0 27 января, 2021 Опубликовано 27 января, 2021 · Жалоба Добрый вечер. 1)Где можно посмотреть синтаксис для Smart Edit? 2)Если у меня есть много разных текстовых строк в редакторе схем и я хочу у всех этих строк первые два символа удалить - какая должна быть формула? 3)Или добавить увеличивающееся число в конце? Например: ..._1, ..._2, ..._3 4)Batch replace только первую строку меняет, остальные выделенные не трогает. 5)Пытаюсь с помощью формулы строки вида "test1111a", "test1112a", "test1113a" привести к виду "test1a", "test2a", "test3a". Ввожу: Copy(Text, 1, 4) + Copy(Text, 8, 2) или специально по-другому: Copy(!, 4, 1) + Copy(!, Length(!)-1, 2), а результат получаю одинаковый неожиданный, вида "t1111a", "t1112a" и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
peshkoff 24 27 января, 2021 Опубликовано 27 января, 2021 · Жалоба 1 hour ago, coincidence said: Добрый вечер. 1)Где можно посмотреть синтаксис для Smart Edit? 2)Если у меня есть много разных текстовых строк в редакторе схем и я хочу у всех этих строк первые два символа удалить - какая должна быть формула? 3)Или добавить увеличивающееся число в конце? Например: ..._1, ..._2, ..._3 4)Batch replace только первую строку меняет, остальные выделенные не трогает. 5)Пытаюсь с помощью формулы строки вида "test1111a", "test1112a", "test1113a" привести к виду "test1a", "test2a", "test3a". Ввожу: Copy(Text, 1, 4) + Copy(Text, 8, 2) или специально по-другому: Copy(!, 4, 1) + Copy(!, Length(!)-1, 2), а результат получаю одинаковый неожиданный, вида "t1111a", "t1112a" и т.д. Воу! А вот это уже тема. 1. Ну разве что здесь https://www.altium.com/documentation/altium-designer/pcb-pnl-pcbinspectorpcb-inspector-ad?version=15.1#!BROSBA 2. Через Copy-Length, в п 5. вы почти все нарисовали. 3. Увеличивающее число с помощью смартедит вряд ли сделаешь. Нужно использовать SmartPaste 4. должен всё менять. как минимум в №13..17 все работает как надо 5. ошибка в формуле, д.б. Copy(!, 1, 4) + Copy(!, Length(!)-1, 2) Моя небольшая шпаргалка: Quote Copy(AttributeName, StartIndex, Length) 4 и 5 символ C2M_P_DP0 -> C2M_DP0_P C2M_N_DP0 -> C2M_DP0_N Copy(!, 1, 3) + Copy(!, 6, Length(!) - 5) + Copy(!, 4, 2) --------------------------- Переместить символ по строке 1234567890123 FPGA1_PER_P3 -> FPGA1_PER3_P FPGA1_PER_P16 -> FPGA1_PER16_P ! - исходная строка Length(!)=12 - длина строки Скопировать все символы, которые сохраняются, 9 Copy(!,1,9) Последний символ(ы) определяем с какой позиции брать, а количество символов будет зависеть от длины Copy(!,12,Length(!) - 11) Берем с 12 позиции. Автоматом получится: если Х, то 1 символ, если ХХ, то 2 символа Добавляем остаток Copy(!,10,2) с 10 позиции 2 символа (_P) Copy(!,1,9) + Copy(!,12,Length(!) - 11) + Copy(!,10,2) -------------------------- 1ый символ P_HB19 -> HB19_P Copy(!, 3, Length(!) - 2) + '_' + Copy(!, 1, 1) Если же нужно что-то сложное, то лучше воспользоваться SchList, SchLibList, PCBList. Получаем таблицу, копируем в ексель, делаем там махинации с делением/умножением и пр, копируем из екселя, вставляем в SchList Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coincidence 0 27 января, 2021 Опубликовано 27 января, 2021 (изменено) · Жалоба 19 hours ago, peshkoff said: Воу! А вот это уже тема. 1. Ну разве что здесь https://www.altium.com/documentation/altium-designer/pcb-pnl-pcbinspectorpcb-inspector-ad?version=15.1#!BROSBA 2. Через Copy-Length, в п 5. вы почти все нарисовали. 3. Увеличивающее число с помощью смартедит вряд ли сделаешь. Нужно использовать SmartPaste 4. должен всё менять. как минимум в №13..17 все работает как надо 5. ошибка в формуле, д.б. Copy(!, 1, 4) + Copy(!, Length(!)-1, 2) Видимо, я не понимаю для чего, и как пользоваться бэтч реплейсом. Надеюсь, ссылка прояснит, спасибо. Да, в формуле умышленно ошибся - результат получался такой же как и в первом варианте. Но я теперь не могу повторить этот вывод. Проглядел что-то ещё, наверное. В любом случае, я ввожу вашу исправленную формулу и получаю: test1111a -> t1111a1111a Завтра ещё раз попробую, на свежую голову, может третий какой-то результат получу - забавно будет Edit Рапортую: Copy(!, 1, 4) + Copy(!, Length(!)-1, 2) делает test1111a -> t1111a1111a Copy(!, 1, 4) + Copy(!, 8, 2) делает test1111a -> t1111a Просто Length(!) для исходной строки возвращает 2,286 Какие-то скобки ещё, может нужны? Изменено 28 января, 2021 пользователем coincidence дополнил пост Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
peshkoff 24 28 января, 2021 Опубликовано 28 января, 2021 · Жалоба 14 hours ago, coincidence said: Какие-то скобки ещё, может нужны? Какая версия альтиума? Разные версии по разному считают. с 18 версии смартедит прибили, восстановили где-то с 20-ой. Я поставил ради интереса самую последнюю, 21.0.9 проверяю, моя формула работает вот так: сверху входящие, снизу - результат работы Batch. (к модераторам: Можно ли сообщения выделить в отдельную тему? вроде как не совсем для начинающих вопросы) (для вопрошающих: лучше новые вопросы, даже для начинающих, задавать в новых темах, в этой теме все потонет, не найдем потом) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Uladzimir 61 28 января, 2021 Опубликовано 28 января, 2021 · Жалоба Выделена из темы начинающих Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coincidence 0 28 января, 2021 Опубликовано 28 января, 2021 · Жалоба 6 hours ago, peshkoff said: Какая версия альтиума? Разные версии по разному считают. с 18 версии смартедит прибили, восстановили где-то с 20-ой. 17ая версия. Баг что ли Получается сделать то, что я хочу формулой {111=}, но это сработает только пока эта часть не меняется. И почему Length не возвращает количество символов - не понятно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
peshkoff 24 28 января, 2021 Опубликовано 28 января, 2021 · Жалоба 1 hour ago, coincidence said: 17ая версия. Баг что ли Баг. В 13 тоже баг. и работает он так: делит цифры на 10 Если вместо формулы Copy(!, 1, 4) + Copy(!, Length(!)-1, 2) написать Copy(!, 10, 40) + Copy(!, Length(!)-10, 20) то все ОК: и у меня Length(!) исходной строки = 90 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coincidence 0 1 февраля, 2021 Опубликовано 1 февраля, 2021 · Жалоба А если я хочу заменить кусок текста, который символ равенства содержит, т.е. хочу воспользоваться формулой {X==Y=} - получается ошибка. Надо знаки равно заэкранировать? Кавычки и \ не работают Batch replace тоже строки в какую-то ошибку превращает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
peshkoff 24 1 февраля, 2021 Опубликовано 1 февраля, 2021 · Жалоба 8 hours ago, coincidence said: А если я хочу заменить кусок текста, который символ равенства содержит, т.е. хочу воспользоваться формулой {X==Y=} - получается ошибка. Надо знаки равно заэкранировать? Кавычки и \ не работают Batch replace тоже строки в какую-то ошибку превращает вы решили альтиум в нокаут отправить? Обычно SmartEdit импользуется для правки NetLabel У меня в NetLabel ни разу не было знака "=". Откуда он может вообще там взяться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться