| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.11.2020, 22:22 | #1 | |
Как сделать поиск и выделение текста в чертеже из списка
Инженер-проектировщик электроснабжения
Краснодар
Регистрация: 04.09.2009
Сообщений: 249
|
||
Просмотров: 3084
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Чтение файла /= сохранение прочитанного файла в список. Попробуй не просто прочитать, а запомнить что прочитал.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-проектировщик электроснабжения Регистрация: 04.09.2009
Краснодар
Сообщений: 249
|
Так у меня проблема со всем остальным.. Как выделить тексты, как в них искать, как выделять)
__________________
_____ If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
В какой переменной у тебя хранится то, что было в файле?
----- добавлено через ~3 мин. ----- Есть идея - пойти по другому пути. Давай распишем алгоритм? Offtop: AU2020 выбил из колеи, работа все равно не клеится.... Задачу можно "разбить":
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Но вот что действительно вызывает трепет, так это вопрос: как выделить кружочком искомое слово в мультитексте достаточно большого объема? Нет, я понимаю, что можно его (это слово) перекрасить в другой цвет символами форматирования, но ведь смысл в кружочках такой, что их можно сделать непечатаемыми, чего не скажешь о, например, красном фрагменте текста.
----- добавлено через ~2 мин. ----- Может, и вправду стоит делать копии текстов на непечатном слое и в них уже выделять цветом нужные слова, не забывая следить за их порядком прорисовки. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
Цитата:
|
|||
|
||||
Инженер-проектировщик электроснабжения Регистрация: 04.09.2009
Краснодар
Сообщений: 249
|
Суть такая:
Огромный объем чертежей будет переделываться с одного объекта в другой. Оборудование и прочее имеет специфическую кодировку. Т.е. просто автозаменой не сделать. Количество оборудования и т.д. ограничено но все равно несколько десятков. Исходное наименование записывается в текстовый файл построчно. После того как чертеж переделан нужно проверить что ничего не пропущено. Т.е. ищутся старые наименования из текстового файла. При проверке достаточно чтобы однострочный или мультитекст попал в другой отдельный слой, который потом изолируем и видим попало ли туда что то или нет.. то есть есть косяки или нет и дальше уже заморачиваться ----- добавлено через ~16 мин. ----- Цитата:
1. Отрыть файл. 2. Считать построчно и записать в лист 3. Создать слой со специальным названием 4. Выделить все 5. Из выделенного отобрать текст и мультитекст. (либо п.4 и п.5 должны быть в одном с помощью выделения именно текста и мультитекста) 6. В оставшемся почленно выполнять поиск каждой строки и листа. 7. При совпадении менять слой члена. Я правда не уверен насколько быстро такое будет работать. Если в чертеже несколько сотен объектов и в каждом будет поиск сотни строк, то процесс наверно может затянуться. Возможно придется лепить какой нибудь вариант, типа все объекты соединить в один большой текст и в нем уже поиск всех строк делать. И если хоть одно совпадение будет найдено, то выкидывать уведомление с найденным наименование, а дальше уже руками искать.. Надеюсь не дойдет до такого.
__________________
_____ If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?) Последний раз редактировалось Zets, 20.11.2020 в 21:38. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
Цитата:
Код:
строки - это из файла, наверно. А лист откуда нарисовался? И оставшемся - в чем ищете то, может все-таки в отобранных текстовых примитивах? под членом подразумевается примитив текста/мультитекста? |
|||
|
||||
Инженер-проектировщик электроснабжения Регистрация: 04.09.2009
Краснодар
Сообщений: 249
|
Ок.
Цитата:
Да, верно
__________________
_____ If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?) |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
|
|||
|
||||
Инженер-проектировщик электроснабжения Регистрация: 04.09.2009
Краснодар
Сообщений: 249
|
В полученном результате надо foreach сравнить со строками из файла. Как это записать? Не могу никак разобраться.
__________________
_____ If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?) |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Код:
ПП1, 2 из #4
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-проектировщик электроснабжения Регистрация: 04.09.2009
Краснодар
Сообщений: 249
|
Спасибо
Руками будут внесены и дополняться при необходимости
__________________
_____ If you're 555, then I'm 666 If you're 555, I'm 666 (What's it like to be a heretic?) |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,004
|
имхо, это узкое место - поддерживать базу данных многих сотен строк в отдельном текстовом файле. На лиспе это трудновато сделать, но если не зацикливаться именно на лиспе - то можно сделать простой интерфейс в палитре (см. вложение), и в верхнее поле ввода выводить значение из текущего выделенного примитива (если он текстовой). Там же можно подкорректировать значение и занести в список нажатием "Доб.". Ну а по событию изменения поля ввода можно искать в списке уже существующие значения - т.е. и как поиск поле ввода работает. А лисп не такой уж и сложный, просто на нем надо практиковаться усиленно - поэтому на него подзабил в свое время, уйдя в .Net. По количеству строк кода - где то лисп выигрывает, где то .Net. Например, код от Алексея в п.13 на .Net будет выглядеть
Код:
foreach(string lWord in lWords) { ... Сравниваем что нужно с текущим значением lWord из считанного массива строк } так что если лисп не пойдет как ЯП для автоматизации - есть альтернативы) Да и .Net побыстрее все-таки работает а здесь получается, минимум, три вложенных цикла: 1. Цикл по отобранным текстовым примитивам. 2. Цикл по массиву строк над каждым примитивом. 3. Скрытый цикл сравнения символов в строках. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как изменить высоту всего многострочного текста на чертеже | zenija2007 | AutoCAD | 20 | 15.10.2020 17:41 |
как сделать ссылку текста на текст? | pacific60x | AutoCAD | 10 | 07.09.2017 12:25 |
рекурсия при выделение аннотативного текста | dead_lyric | AutoCAD | 7 | 15.12.2016 14:33 |
Как сделать заливку текста прозрачной и без пробелов вокруг него? | nail058 | AutoCAD | 3 | 22.06.2016 10:52 |
Как изменить стиль текста во всем чертеже? | Albino | AutoCAD | 34 | 17.12.2009 10:55 |