void getData(ifstream& input,vector<Bus>& vecBus,vector<ACline>& vecACLine, vector<TopoNode>& vecTopoNode,vector<Unit>& vecUnit, vector<Transformer>& vecTransformer,vector<Load>& vecLoad) {//调用其他get函数,一次性读取 //有必要了解input的getline是怎么工作的。 //使用过一次,然后再次使用是有影响的 //所有在使用输入流时应该注意顺序,否则会导致无法跳出 getBusData(input,vecBus); getAClineData(input,vecACLine); getUnit(input,vecUnit); getTransData(input,vecTransformer); //load函数位置 getLoadData(input,vecLoad); getTopoNode(input,vecTopoNode); }
void ASCIILib::makeBinLib(const char *alaraFname) { int tKza, dKza, nGammaParents=0, writeGamma; char alaraIdxName[256], alaraLibName[256]; char gammaIdxName[256], gammaLibName[256]; strcpy(alaraIdxName,alaraFname); strcat(alaraIdxName,".idx"); strcpy(alaraLibName,alaraFname); strcat(alaraLibName,".lib"); binLib = new ALARALib(alaraLibName, alaraIdxName); strcpy(gammaIdxName,alaraFname); strcat(gammaIdxName,".gdx"); strcpy(gammaLibName,alaraFname); strcat(gammaLibName,".gam"); gammaLib = new ALARALib(gammaLibName,gammaIdxName); /* get initial info from text files */ getTransInfo(); debug(4,"Got transmutation header info."); getDecayInfo(); debug(4,"Got decay header info."); binLib->writeHead(nGroups,grpBnds,grpWeights); gammaLib->writeHead(0,NULL,NULL); /* get first entries from each library */ tKza = getTransData(); debug(4,"Got next transmutation entry."); dKza = getDecayData(); debug(4,"Got next decay entry."); /* while we are not at the last isotope in both libraries */ while (tKza != LASTISO || dKza != LASTISO) { /* establish order */ if (tKza < dKza) { /* make a pure trans entry */ debug(4,"Writing pure transmutation entry for %d.",tKza); kza = tKza; trans2merge(); tKza = getTransData(); writeGamma = FALSE; debug(4,"Got next transmutation entry."); } else if (dKza < tKza) { /* make a pure decay entry */ debug(4,"Writing pure decay entry for %d.",dKza); kza = dKza; decay2merge(); if (numSpec > 0) { gammaLib->writeGammaData(kza,numSpec,numDisc,nIntReg,nPnts, discGammaE,discGammaI,intRegB,intRegT, contX,contY); nGammaParents++; } dKza = getDecayData(); debug(4,"Got next decay entry."); } else { /* make a merged entry */ debug(4,"Writing merged entry for %d.",tKza); kza = tKza; merge(); tKza = getTransData(); debug(4,"Got next transmutation entry."); if (numSpec > 0) { gammaLib->writeGammaData(kza,numSpec,numDisc,nIntReg,nPnts, discGammaE,discGammaI,intRegB,intRegT, contX,contY); nGammaParents++; } dKza = getDecayData(); debug(4,"Got next decay entry."); } /* write the entry to the output files */ binLib->writeData(kza,nRxns,mThalf,mE,daugKza,mEmitted,mXsection); /* increment the number of parents */ nParents++; } binLib->close(nParents,DATALIB_ALARA,alaraIdxName); gammaLib->close(nGammaParents,DATALIB_GAMMA,gammaIdxName); }