Запись фиктивных данных в архивы средствами билдера

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
Аватара пользователя
Wisdom
Сообщения: 18
Зарегистрирован: 19 апр 2007, 17:18
Откуда: sigma avtomatika

Сообщение Wisdom » 02 ноя 2007, 17:07

Объясните пожалуйста как в Билдере писать аналоговые данные в архив с помощью ваших компонентов.

В примере на Делфи который вы мне дали для этого используется IdepArcPeriodicArc, но Билдер отказывается создавать объект

Код: Выделить всё

[C++ Error] index.cpp(29): E2352 Cannot create instance of abstract class 'IdepArcPeriodicArc'
[C++ Error] index.cpp(29): E2353 Class 'IdepArcPeriodicArc' is abstract because of '__stdcall IdepArcPeriodicArc::Get_Id(int &) = 0'


Как с этим быть? Как зовут живого наследника, которого можно использовать? В документации не нашёл.

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 08 ноя 2007, 14:03

Интерфейс архива можно запросить через список архивов у компонета TdepArcStorage:

Код: Выделить всё

  /*получаем интерфейс опрделенного архива (если архива нет в хранилище, то он будет создан)*/
TdepArcStorage* Storage = new TdepArcStorage(NULL);
_di_IdepArcPeriodicArc fArc;
Storage->ListPeriodicArc->Add2(
	"", /*название архива (если пустая строка, то название будет задано автоматически*/
	taPeriodicAnalog, /*тип архива*/
	0, /*время хранения в днях, если 0 то не чиститься вообще*/
	7, /*актуальность данных в днях* (данные могут быть записаны с меткой времени за последние 7 дней)*/
	false, /*удалять запись об архиве, если его перестанут вести*/
	tpMinute, /*тип периода*/
	1, /*кол-во периодов*/
	0, /*служебный параметр*/
	fArc);
С уважением Климов Александр
Компания ДЭП
г. Москва
(495) 995-00-12 доб. 150

Аватара пользователя
Wisdom
Сообщения: 18
Зарегистрирован: 19 апр 2007, 17:18
Откуда: sigma avtomatika

Сообщение Wisdom » 30 ноя 2007, 16:10

В продолжение перевода делфийских кодов подскажите как теперь читать аналоговые параметры.

Надо получить имя параметра, но у самого TdepArcPeriodicAnalogDataRecord нет IdPar

Мне казалось, делается так:

Код: Выделить всё

       TdepArcPar * par;

        _di_IdepArcListViewGroupRefParRead list_ref_par =
        depArcPeriodicAnalogViewRead->ListViewGroupRefParRead;

        Storage->ListPar->FindById(
                list_ref_par->Items[i]->IdPar
                , par);

        String name = par->Name;


Но тут он говорит ошибку

Код: Выделить всё

[Linker Error] Unresolved external 'System::__linkproc__ __fastcall CheckAutoResult()' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|syssupp


Как быть?

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 03 дек 2007, 12:59

Возможно, что данная проблема в lib файлах С++Builder 6.
Решение проблемы - добавьте в Ваш проект файл syssupp.cpp, расположенный в Program Files\DEP\Components\DEP60.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Аватара пользователя
Wisdom
Сообщения: 18
Зарегистрирован: 19 апр 2007, 17:18
Откуда: sigma avtomatika

Сообщение Wisdom » 03 дек 2007, 14:51

Добавить это в смысле "Project->Add To Project"?

Я добавил таким образом пути прописал.

Даже #include "syssupp.cpp" написал

При компиляции он выдает

Код: Выделить всё

[Tasm Fatal Error] (1): Out of hash space


И окошко с предложением создать новый Юнит/Форму/Текстовый файл.

Dino
Сообщения: 163
Зарегистрирован: 21 фев 2005, 13:18
Откуда: Компания ДЭП

Сообщение Dino » 03 дек 2007, 15:49

Добавить это в смысле "Project->Add To Project"?

Да, все правильно. Далее выбрать файл syssupp.cpp в папке Program Files\DEP\Components\DEP60 и запустить сборку проекта.

Нельзя писать: #include "syssupp.cpp".
Чтобы исчезла ошибка

Код: Выделить всё

[Tasm Fatal Error] (1): Out of hash space
соберите проект весь заново (меню Project->Build <имя Вашего проекта>).

Данная проблема проявляется только в С++Builder 6.
С уважением Климов Александр

Компания ДЭП

г. Москва

(495) 995-00-12 доб. 150

Аватара пользователя
Wisdom
Сообщения: 18
Зарегистрирован: 19 апр 2007, 17:18
Откуда: sigma avtomatika

Сообщение Wisdom » 03 дек 2007, 16:01

Все заработало.
Спасибо.

Тех. поддержка
Сообщения: 465
Зарегистрирован: 18 ноя 2004, 17:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение Тех. поддержка » 06 дек 2007, 18:06

Wisdom писал(а):Все заработало.
Спасибо.

Пожалуйста!
С уважением
Компания ДЭП
Москва, Голубинская ул., 10
+7 (495) 995-00-12