
Пересечение стрингов
Приветствую!
В Micromine уже имеется функция, которая определяет точки пересечения стрингов, однако получить их в отдельном файле точек не предоставляется возможным, потому что они добавляются в файл так называемого "основного" стринга (стринга, который выбирается пользователем первым), и добавляются не в конец файла, поэтому пользователю, если появилась такая потребность, придется искать их, пролистывая неоднократно целиком весь файл.
Я нарисовал от руки небольшой пример:
В жизни приходится работать с более красивыми стрингами, но тем не менее сути это не меняет. После запуска скрипта вам надо будет заполнить поля в появившимся окне:
Вы указываете файл файлы стригов и задаете имя файла точек (вводите имя или выбираете уже существующий файл), в который будут сохранены точки пересечения выбранных вами стрингов. Скрипт запустить встроенную в Micromine функцию Создать точку на пересечении, то есть надо надо проделать знакомую для всех операцию: выбрать "основные" и пересекающиеся стринги. В результате работы скрипта в Vizex загрузится файл точек:
Скрипт: Пересечение стрингов.py
Необходимые файлы: mmfiles.py
Примечание:
- Прошу заметить, что файлы стрингов не обязательно сохранять, если они еще не были сохранены, так как Micromine по умолчанию их сохраняет в файл Без имени.str.
- Функция Создать точку на пересечении по умолчанию добавляет точки пересечения в файл стринга, однако скрипт удаляет эти точки оттуда. Так как этот файл так или иначе подвергся изменениям, он будет в окне просмотра помечен звездочкой, но это все тот же файл, поэтому если Micromine спросит: "Сохранить ли изменения в файле Без имени.STR?", то можно смело жать на любой ответ.
Customer support service by UserEcho
Спасибо! Только а как это запустить?....файлы в директории Питона есть, но запуск в ММ скрипта ровным счетом ничего не даёт..какие условия ещё надо бы соблюсти? :-)
Артем, проверьте, все ли условия у Вас выполнены:
Добрый день, Павел!
Все сделал по пунктам, но выдает такую ошибку:
<class 'ImportError'>: cannot import name _fix: File "<string>", line 2, in <module>
File "C:\Program Files (x86)\Micromine 2013\python\lib\tkinter\__init__.py", line 36, in <module>
from tkinter import _fix
>>>
Артем, у Вас не запускается графический интерфейс скрипта...
Такая ошибка может выскочить, если у Вас не установлен Python, или Micromine не видит директорию, в которую он у Вас установлен. Создайте пустой скрипт, напишите в нем следующую строку: print(sys.path), и запустите его. В результате скрипта должно появиться:
['', 'C:\\Program Files (x86)\\Micromine 2013\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Program Files (x86)\\Micromine 2013', 'C:\\Python33', 'C:\\Python33\\lib\\site-packages']
У Вас так?
Сделал,
получилось такое:
['', 'C:\\Program Files (x86)\\Micromine 2013\\python33.zip', 'C:\\Program Files (x86)\\Micromine 2013\\python\\DLLs', 'C:\\Program Files (x86)\\Micromine 2013\\python\\lib', 'C:\\Program Files (x86)\\Micromine 2013', 'C:\\Program Files (x86)\\Micromine 2013\\python', 'C:\\Program Files (x86)\\Micromine 2013\\python\\lib\\site-packages', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\', 'D:\\ОЗЕРНОВСКОЕ_РП\\']
Где "D:\\ОЗЕРНОВСКОЕ_РП" это пусть к проекту...
Может он должен быть тогда тоже на С?
Нет, проблема в том, что у Вас нет в этом списке директорий 'C:\\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Python33', 'C:\\Python33\\lib\\site-packages'. Скачали ли Вы и установили Python (python-3.3.1.msi)? Есть ли у Вас на диске С:\ папка Python33?
:-)
я все скачал и установил, так и есть C:\\Python33',
Micromine после установки Python перезапускали?
Нет, но сейчас перезапустил, и скрипт запустился :-)
Отлично! Возникнут еще вопросы, спрашивайте.
Хорошо, Спасибо! :-)