|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Немного пооффтоплю.
Supermax, Не надо насиловать пользоватеся насчет C:\TMP Автокад сам может находить системную временную папку для создания временных файлов. Сценарий такой Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Ребята, а не кажется вам, что нужно сделать отдельную веточку в разделе "Программирование"? А то и так за 30 страниц перевалило...
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Ну, блин, стоит отвлечься на минутку, как тут две страницы вывалилось!
Ша, ребята! Все будет ОК. Есть два подхода к использованию временных файлов. Первый - создавать уникальный файл в любом доступном месте и по окончании работы его убивать. (setq fl (vl-filename-mktemp "supermax" nil ".dcl")) на это и настроен. Но при таком способе, при аварийном выходе из программы в винчестере остается "левый" файл. Таких "левых" я нахожу порою весьма много. Второй подход - это сначала убивать файл, а потом его создавать и приминительно к DCL (setq fl (vl-filename-mktemp "supermax" nil ".dcl")) такая штука не катит. Не находит прога DCL если нет пути в Support File Search Path. Есть разница между обычным обращением из под лиспа к всевозможным файлам и (load_dialog "muve_to_visibilityset.dcl"). Тут вообще не возможно путь указать в имени файла. Не хавает пипл! А (setq fl (vl-filename-mktemp "supermax" nil ".dcl")) и иже им подобные не оставляют в автокаде инфу о пути. Вот и мается Shoorup, пытаясь открыть файл. Для DCL должен быть прописан путь! Аминь. |
||||
![]() |
|
||||
Supermax, Я сделал так.
1. Прописал путь к TMP. 2. Запустил visibilityset.fas. Он создал в этой же папке muve_to_visibilityset.dcl 3. Удалил путь к TMP. 4. Скопировал в свою папку (прописанную) файлы Move-to-visibilityset.fas, muve_to_visibilityset.dcl. И все у меня работает прекрасно и не знаю я горя ![]() после парочки экспериментов понял что фас можно с любого места запустить а вот дкл должен лежать и там и там походу иначе ругается
__________________
Поезд который устал от ржавого здравомыслия рельсов... Последний раз редактировалось Shoorup, 10.09.2008 в 18:30. Причина: поэксперементировал |
||||
![]() |
|
||||
Shoorup, дело не в том, как запустить что-то конкретно где-то, а в принципе. Это тебе повезло, что я не настроен был на динамическое создание DCL. Это когда панель управления создается под конкретную ситуацию в процессе работы самого макроса.
И зачем ты прописал путь, а потом его убил? Странно... Ну я тебе кнопочки укорочу.... Жди. Последний раз редактировалось Supermax, 10.09.2008 в 22:31. |
||||
![]() |
|
||||
Исправил очень серьезный хомут, который вы так и не нашли. Вот, думаю, выложу, ребята покрутят и огрехи найдут - ха, ха, ха!
Сам, все сам. Кнопки так и не подрезал с огорчения, но обязательно подрежу. Мне и самому не нравятся такие палки, а не кнопки. |
||||
![]() |
|
||||
В качестве отдыха попытался сделать 26-ричный счетчик для экселя-лукупа. У меня 2003 эксель и в нем огрничение 256 столбцов это последний столбец "IV". Я не знаю распостраняется это ограничение и в последней версии экселя. У кого последний офис, плииз, проверьте ограничение по количеству столбцов. Скопируйте что-нибудь строке.
|
||||
![]() |
|
||||
Эксель у меня тоже 2003й.
Программу попробовал. Работает отлично. Сделал уже пару блоков которые отложил из-за того что слишком нагромождено объектов которые нужно сделать и видимыми и нет. Supermax, было бы хорошо все эти программы видеть в одной.
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Все. Все решил.
Функция конвертирующая число от о до 16383 что соответтвует от "А" до "XFD" в эти самые буковки. Запускается (CONVERT-26 x) где х - конвертируемое число. Возвращает строку с буквами. (CONVERT-26 0) - вернет "А" (CONVERT-26 255) - вернет "IV" (CONVERT-26 16383) - вернет "XFD" Все остальное, что выходит за рамки 0-16383 - вернет nil. Применяется для обращения к столбцам экселя в программах. Код:
![]() Последний раз редактировалось Supermax, 12.09.2008 в 08:32. |
||||
![]() |
|
||||
Если в теле функции изменить число 16383 на большее, то прога будет корректно переводить аж до "ZZZ", но эксель там не пашет, вот я и ограничил, чтобы в случае ошибки ввода вываливаться.
Дарю всем борющимся с выводом и вводом из экселя. Могу оформить и выложить в библиотеку функций, хотя я в ней разочаровался. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Можно эту "математику" сделать рекурсией. Правда, в скорости выигрыш вряд ли будет
![]() Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 12.09.2008 в 01:00. Причина: Случайно засунул лишний код |
|||
![]() |
|
||||
Во! А где ж ты раньше был? Или это ты только сейчас наваял?
Весьма полезные функции, кстати.Может их и в самом деле в библиотеку функций оформить? Если бы была тема про обращение из под лиспа к файлам экселя, где подробно разбираются методы получения данных из него и записи туда данных, то эти функции очень были бы там к месту. На их основе и 16-тиричный конвертер можно сделать. ![]() |
||||
![]() |
|
||||
Kpblc, у твоего варианта есть пару минусов.
1 - если число отрицательное выдает пустую строку, а должно выдавать nil. Так правильнее. 2 - При очень большом числе (vl-list->string(get-num 9000000000)) выдает ; error: bad char code in list: 65.1205 что совсем уж не годится.Надо ограничение на диапазон ставить. К чему четвертая буква, если ее некуда тулить?. Делов-то в начале функции проверить число на ограничение по величине. А так, очень и очнь недурственно. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Только сейчас (точнее, вчера, увидев твои мытарства) сделал.
Понимаешь, Евгений Елпанов в свое время показывал код обращения к xls-файлу вообще без Excel'a (через ADO, насколько я помню). Так что я бы поискал его решение и попытался с ним разобраться, чем свое рисовать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |