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); } }
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()); }
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(); }
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; }
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; }
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; }
/* 名称|运转|备注 名称|运转|备注 */ 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)); } }
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); }
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(); } }
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; }
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; }