Страница 1 из 2
Импорт значения атрибута из файла.
Добавлено: 02 мар 2009, 17:09
Kikx
Ситуация следующая: есть внешняя программа, она формирует цифровой код и записывает его в txt файлик. Эти цифры нужно потом передать в переменную и присвоить объекту. Выглядеть это должно так: запуск внешнего приложения из Лоции, формирование приложением файла с кодом, чтение Лоцией кода из файла, присвоение атрибута с кодом объекту. Я понимаю, что задача рядовая, но беглый просмотр инструкций не дал ответа на вопрос. Не подскажете ли, как это реализуется, какие разделы справки читать?
Re: Импорт значения атрибута из файла.
Добавлено: 02 мар 2009, 18:49
Старик Крупский
А зачем делать файл с кодом? Если внешнее приложение генерит код, то пусть это же приложение запустит действие и передаст в него код без всякого файла. Ну, а действие уж пусть делает все что угодно.
Re: Импорт значения атрибута из файла.
Добавлено: 03 мар 2009, 11:48
Юрий
Дам развернутый ответ:
1.Значения в атрибуты Lotsia можно занести из внешнего приложения только с использованием PartyAPI.
Но для этого необходимо минимальные знания C/C++
2.Можно использовать функцию лоции, которая читает значения из ini файла, но при вызове из действия
внешнего приложения Лоция не ожидает его завершения. Для этого надо зацикливать действие ожидая отработки внешнего приложения, что так-же не очень удобно, но исхитрится можно.
3.Формировать номер в самой лоции.
Вроде ничего не забыл.
Re: Импорт значения атрибута из файла.
Добавлено: 04 мар 2009, 09:41
Старик Крупский
Ну, уж не обязательно и C/C++. VB тоже вполне хватило бы

Re: Импорт значения атрибута из файла.
Добавлено: 04 мар 2009, 10:50
Юрий
В принципе да, только не так просто вычислять размерности структур данных.
В VB нельзя использовать структуры, а используется выделение в памяти места под
параметры, которые передаются в функции PartyAPI.
И при заполнении сложных структур довольно проблематично вычислить длину данных.
Поэтому я и говорю C/C++, потому что знание этого языка и предполагает знание всех длин
данных. Причем описание структур в документации приводится на языке СИ.
На VB можно написать, но по приведенным выше аргументам, да-же там не обойтись без минимальных
знаний C/C++!

Re: Импорт значения атрибута из файла.
Добавлено: 04 мар 2009, 15:16
Kikx
Спасибо большое за ответы. Правда, это все вряд ли мне подойдет, поскольку Си я не знаю (и других языков тоже, Паскаль не в счет

. Может, в Лоции есть функция чтения из буфера обмена?
Re: Импорт значения атрибута из файла.
Добавлено: 04 мар 2009, 15:51
Kikx
UPD Решение было найдено незамедлительно

Техподдержка подказала, что в качестве аргумента функции set можно использовать clipboard (), что и привело к желаемому результату.
Всем еще раз спасибо за ответы.
Re: Импорт значения атрибута из файла.
Добавлено: 04 мар 2009, 19:02
Старик Крупский
Re: Импорт значения атрибута из файла.
Добавлено: 04 мар 2009, 19:24
Kikx
Я тоже был удивлен

Такая полезная вещь, а не документирована.
Re: Импорт значения атрибута из файла.
Добавлено: 05 мар 2009, 09:39
Старик Крупский
Ну, я примерно могу понять, почему она не документирована:
1. Хорошо, если в буфере строчка, а если там непонятно что?
2. Как только это будет задокументировано, сразу появятся желающие помещать в буфер обмена
Re: Импорт значения атрибута из файла.
Добавлено: 05 мар 2009, 09:45
Юрий
И еще где гарантия того, что в промежуток между тем, как программа занесет значение в буфер обмена,
и Лоция считает это значение ни кто не попортит буфер?
И как будет происходить синхронизация между действиями лоции и программой? Ведь лоция не ждет завершения внешней программы...
Re: Импорт значения атрибута из файла.
Добавлено: 05 мар 2009, 09:46
Старик Крупский
А еще я попробовал clipboard() засунуть в вычисляемое поле. Прикольно - оно показало! Но оно показывет только символьные значения. Положил в буфер обмена файл и вычисляемое поле стало пустым...
Re: Импорт значения атрибута из файла.
Добавлено: 05 мар 2009, 14:09
Kikx
Юрий писал(а):И еще где гарантия того, что в промежуток между тем, как программа занесет значение в буфер обмена,
и Лоция считает это значение ни кто не попортит буфер?
И как будет происходить синхронизация между действиями лоции и программой? Ведь лоция не ждет завершения внешней программы...
Синхронизацию я сделал через дополнительный шаг в действии. Т.е. это выглядит так:
шаг 1: запуск программы через runapp
шаг 2: делаем в проге все, что нужно, после она закидывает код в буфер и закрывается
шаг 3: этакое "бездействие", в свободную форму написал строчку "После формирования кода нажмите Готово"
шаг 4: присваиваем переменной значение через set ( clipboard () )
Получается не совсем красиво, но работает. Между этапами "сформировали значение в проге" и "прочитали из буфера" проходит совсем мало времени, т.к. прога по нажатию ОК закрывается и заносит строку в буфер автоматически, и постоянно активно окно либо действия, либо проги. Выходит, что вмешаться в корректное выполнение задуманного можно, но нужно знать, чо да как. А учитывая целевую группу пользователей, можно быть уверенным, что такого не произойдет.
Хотя я не совсем понимаю, почему не сделали такую клевую вещь, как чтение из внешнего файла.
Re: Импорт значения атрибута из файла.
Добавлено: 05 мар 2009, 21:57
Старик Крупский
Почему? Читайте из инишника. Есть такая функция. Только надо чтобы внешняя прога туда что-то записала
Re: Импорт значения атрибута из файла.
Добавлено: 06 мар 2009, 08:33
Александр
Читайте из инишника.
или из чего угодно - ведь у нас есть скрипты в действиях - не так ли?
WSH и полный вперед
