Example #1
0
void ReportDataHelper::ReadDatas( const CString& name, ArrayVector& datasVector,int unitCount )
{
	AcStringArray getDatas;
	AcDbObjectId objId;
	GDESDataObjectHelper::GetObjectId(name,objId);
	GetObjectDatas(objId,getDatas);
	//AcStringArray strName,strIsRunning,strReason;
	ArrayVector datas;
	int nCount = getDatas.length();
	if(nCount <= 0) return;
	datas.resize( unitCount );
	for(int i = 0;  i < nCount; i = i+2 )
	{
		int j = (i/2)% unitCount;
		datas[j].append(getDatas[i]);
	}

	datasVector.clear();
	for(int i = 0; i < nCount / (2 * unitCount); i++)
	{
		CString temp;
		AcStringArray temps;
		for(int j = 0; j < unitCount; j++)
		{
			temp.Format(_T("%s"),datas[j][i].kACharPtr());
			if(temp == ISNULL) temp = _T("");
			temps.append(temp);
		}
		datasVector.push_back(temps);
	}
}
Example #2
0
static void setRecord(vector<CListCtrl_DataRecord>& records,const ArrayVector& datasVector,CString& num)
{
	for (int i = 0; i < datasVector.size(); i++)
	{
		CString name = datasVector[i][0];
		CString running =  datasVector[i][1];
		CString reason = datasVector[i][2];
		records.push_back(CListCtrl_DataRecord(name,running,reason));
	}
	num.Format(_T("%d"),datasVector.size());

}
Example #3
0
void SymbolManager::cleanArrays() {
	this->arrayVectorMutex.lock();
	for (auto &item : this->arrayVector) {
		assert(item);
		item->updateTypes();
	}

	auto item = this->arrayVector.begin();
	std::sort(
		item,
		arrayVector.end(),
		[](const Array *a, const Array *b) {
			return *a < *b;
		}
	);
	item = this->arrayVector.begin();

	if (item == this->arrayVector.end()) {
		return;
	}

	Array *oldPtr = *item;
	Array *delPtr = nullptr;
	item++;

	ArrayVector tmp;

	while (item != this->arrayVector.end()) {
		if (*oldPtr == *(*item)) {
			this->addAlternativeID(oldPtr->getID(), (*item)->getID());
			delPtr = *item;
			delete delPtr;
		} else {
			oldPtr = (*item);
			tmp.push_back(*item);
		}
		item++;
	}

	tmp.shrink_to_fit();
	this->arrayVector.swap(tmp);
	tmp.clear();

	this->arrayTypeMapMutex.lock();
	for (auto &item : arrayVector) {
		this->arrayTypeMap.insert(std::make_pair(item->getType(), item));
	}
	this->arrayTypeMapMutex.unlock();
	this->arrayVectorMutex.unlock();
}
Example #4
0
static BOOL ReadTableDatas(const CString& itemName,AcStringArray& names,AcStringArray& datas)
{
	names.removeAll();
	datas.removeAll();
	ArrayVector dataVector;
	ReportDataHelper::ReadDatas(itemName,dataVector,2);
	if(dataVector.empty()) return FALSE;
	for(int i = 0; i < dataVector.size(); i++)
	{
		names.append(dataVector[i][0]);
		datas.append(dataVector[i][1]);
	}
	return TRUE;

}
Example #5
0
static BOOL ReadDataFromFile(const CString& txtName,AcStringArray& names,AcStringArray& isRunings,AcStringArray& resons)
{
	names.removeAll();
	isRunings.removeAll();
	resons.removeAll();
	ArrayVector dataVector;
	ReportDataHelper::ReadDatas(txtName,dataVector,3);
	if(dataVector.empty()) return FALSE;
	for(int i = 0; i < dataVector.size(); i++)
	{
		names.append(dataVector[i][0]);
		isRunings.append(dataVector[i][1]);
		resons.append(dataVector[i][2]);
	}
	return TRUE;
}
Example #6
0
BOOL GasSysDlg::RecordRunningSysName(const AcStringArray& gasSysNams,const AcStringArray& gasSysRunning)
{
	//CString dataDirName = _T( "Datas\\BaseTemp\\" );
	//CString fileName =BuildPath ( BuildPath( GetAppPathDir(), dataDirName ),_T("bgaspumpvars0.txt") );

	//AcOfstream outFile(fileName);
	//if (!outFile) return FALSE;

	ArrayVector namesVector;
	AcStringArray names;
	for(int i = 0; i < gasSysNams.length(); i++)
	{
		CString isRunning = gasSysRunning[i].kACharPtr();
		if(isRunning != _T("是")) continue;
		names.append(gasSysNams[i]);
		//outFile << gasSysNams[i].kACharPtr() << _T("\n");
	}
	namesVector.push_back(names);
	ReportDataHelper::WriteDatas(RUNNING_SYS_OBJCT_NAME,namesVector);
	if(namesVector.empty()) return FALSE;
	return TRUE;
}
int main (int argc, const char * argv[])
{
    
    ArrayVector<int> my_vector;
    
    for (int i=0; i<15; i++) {
        my_vector.insertAtRank(i, i*2+2);
        std::cout<<"in slot " << i << " is the number " << my_vector.elemAtRank(i) << "\n";
    };
    
    my_vector.removeAtRank(10);
    my_vector.removeAtRank(1);
    my_vector.removeAtRank(12);
    
    std::cout <<"show vector after some removals\n";
    
    for (int i=0; i<12; i++) {
        std::cout<<"in slot " << i << " is the number " << my_vector.elemAtRank(i) << "\n";

    }

    //own Example here!
    ArrayVector<double> example;
    std::cout << "own example\n";
    
    for (int i = 0; i < 100; i++) {
        example.insertAtRank(i, (double)i/32.1);
    }    
    for (int i = 0; i < 100; i += 3) {
        example.removeAtRank(i);
    }
    for (int i = 0; i < 65; i++) {
        std::cout<<"in slot " << i << " is the number " << example.elemAtRank(i) << "\n";
    }
    
    return 0;
}
Example #8
0
/*
名称|运转|备注
名称|运转|备注
*/
void GasSysDlg::OnInitList()
{
	initList(m_permCListCtrl,m_permDataModel);
	initList(m_tempCListCtrl,m_tempDataModel);
	ArrayVector datasVector;

	//获取地面系统数据
	ReportDataHelper::ReadDatas(PERMENT_OBJCT_NAME,datasVector,3);
	m_numPermSys = _T("");
	m_permRecords.clear();
	if(datasVector.size() > 0) 
	{
		setRecord(m_permRecords,datasVector,m_numPermSys);
	}

	datasVector.clear();
	//获取井下系统数据
	ReportDataHelper::ReadDatas(TEMPGAS_OBJCT_NAME,datasVector,3);
	m_numTempSys = _T("");
	m_tempRecords.clear();
	if(datasVector.size() > 0) 
	{
		setRecord(m_tempRecords,datasVector,m_numTempSys);
	}

	UpdateData(FALSE);
	if(IsNum(m_numPermSys))
	{ 
		SetPermItems(_ttoi(m_numPermSys));
	}
	if(IsNum(m_numTempSys))
	{ 
		SetTempItems(_ttoi(m_numTempSys));
	}

}
Example #9
0
void ReportDataHelper::WriteDatas( const CString& name,const ArrayVector& datas )
{
	AcDbObjectId objId;
	GDESDataObjectHelper::GetObjectId(name,objId);
	AcStringArray values;
	for(int i = 0; i < datas[0].length();i++)
	{
		for(int j = 0; j < datas.size(); j++)
		{
			values.append(datas[j][i]);
			values.append(_T("$"));
		}
	}
	SetObjectDatas(objId,values);
}
Example #10
0
void GasSysDlg::OnBnClickedEnsure()
{
	UpdateData(TRUE);
	AcStringArray strName,strIsRunning,strReason;
	//从列表中获取数据
	GetDatasFromList(m_permCListCtrl,strName,strIsRunning,strReason,_ttoi(m_numPermSys));
	ArrayVector datas;
	datas.push_back(strName);
	datas.push_back(strIsRunning);
	datas.push_back(strReason);
	//把数据写到数据词典中
	ReportDataHelper::WriteDatas(PERMENT_OBJCT_NAME,datas);

	AcStringArray gasSysNams;
	gasSysNams.append(strName);
	AcStringArray gasSysRunning;
	gasSysRunning.append(strIsRunning);

	strName.removeAll();
	strIsRunning.removeAll();
	strReason.removeAll();
	GetDatasFromList(m_tempCListCtrl,strName,strIsRunning,strReason,_ttoi(m_numTempSys));
	datas.clear();
	datas.push_back(strName);
	datas.push_back(strIsRunning);
	datas.push_back(strReason);
	ReportDataHelper::WriteDatas(TEMPGAS_OBJCT_NAME,datas);
	//WriteDataToFile(_T("btvars.txt"),strName,strIsRunning,strReason);
	//for (int i = 0; i < strName.length(); i++)
	//{
		gasSysNams.append(strName);
		gasSysRunning.append(strIsRunning);
	//}
	RecordRunningSysName(gasSysNams,gasSysRunning);

	if(ShowRetDlg())
	{
		OnOK();
	}
}
Example #11
0
static BOOL ReadSysPumpDatas(ArrayVector& datas)
{
	ArrayVector dataVector;
	ReportDataHelper::ReadDatas(GAS_PUMP_OBJCT_NAME,dataVector,4);
	if(dataVector.empty()) return FALSE;
	AcStringArray sysNames,pumpStates,pumpTypes,pumpAbilities;
	for(int i = 0; i < dataVector.size(); i++)
	{
		sysNames.append(dataVector[i][0]);
		pumpStates.append(dataVector[i][1]);
		pumpTypes.append(dataVector[i][2]);
		pumpAbilities.append(dataVector[i][3]);
	}

	datas.push_back(sysNames);
	datas.push_back(pumpStates);
	datas.push_back(pumpTypes);
	datas.push_back(pumpAbilities);

	return TRUE;
}
Example #12
0
int main(int argc, const char * argv[]) {

	ArrayVector<int> my_vector;

	for (int i = 0; i < 15; i++) {
		my_vector.insertAtRank(i, i * 2 + 2);
		std::cout << "in slot " << i << " is the number " << my_vector.elemAtRank(i) << "\n";
	};

	my_vector.removeAtRank(10);
	my_vector.removeAtRank(1);
	my_vector.removeAtRank(12);

	std::cout << "show vector after some removals\n";

	for (int i = 0; i < 12; i++) {
		std::cout << "in slot " << i << " is the number " << my_vector.elemAtRank(i) << "\n";

	}

	// 2) Own example here
	std::cout << std::endl << "2) My own example ------------" << std::endl;
	ArrayVector<float> other;

	for (int i = 0; i < 12; i++) {
		other.insertAtRank(i, i * PI);
		std::cout << "In slot " << i << " is the number " << other.elemAtRank(i) << std::endl;
	}

	std::cout << std::endl << "--- Size of vector: " << other.size() << " ---" << std::endl;

	while (!other.isEmpty()) {
		other.removeAtRank(0);
	}

	const char* res = other.isEmpty() ? "Yes" : "No";
	std::cout << "--- Is vector now empty? " << res << std::endl;

	return 0;
}