ObjectARX, AutoCAD. Среда программирования библиотеки C++

Выполнение итераций по Входам Словаря


Iterator класс для словарей - AcDbDictionaryIterator. Следующая выборка кода получает словарь (ASDK_DICT) от названного объектного словаря.

Это тогда использует словарь iterator, чтобы шагнуть через входы словаря и печатать значение сохраненного целого числа. Наконец, это удаляет iterator и закрывает словарь.

void

iterateDictionary()

{

AcDbDictionary *pNamedobj;

acdbHostApplicationServices()->workingDatabase()

->getNamedObjectsDictionary(pNamedobj, AcDb::kForRead);

// Get a pointer to the ASDK_DICT dictionary.

//

AcDbDictionary *pDict;

pNamedobj->getAt("ASDK_DICT", (AcDbObject*&)pDict,

AcDb::kForRead);



pNamedobj->close();

// Get an iterator for the ASDK_DICT dictionary.

//

AcDbDictionaryIterator* pDictIter = pDict->newIterator();

AsdkMyClass *pMyCl;

Adesk::Int16 val;

for (; !pDictIter->done(); pDictIter->next()) {

// Get the current record, open it for read, and

// print its data.

//

pDictIter->getObject((AcDbObject*&)pMyCl,

AcDb::kForRead);

pMyCl->getData(val);

pMyCl->close();

acutPrintf("\nintval is: %d", val);

}

delete pDictIter;

pDict->close();

}



Содержание раздела