/////////////////////////////////////////////////////////////////////////////// /// \brief Reads the contents of the name file /////////////////////////////////////////////////////////////////////////////// bool LgrFileReader::impl::ReadFile () { EReadAsciiFile fp(m_inputFile); if (!fp.OpenFile()) return false; try { CStr line; // LINE 0: [#Text] comment bool isComment; do { fp.GetLine(&line); if (!line.IsEmpty() && line.at(0) == '#') isComment = true; else isComment = false; } while (isComment); // LINE 1: LGR CStr firstItem; if (!fp.ReadData(firstItem) || firstItem != "LGR") return false; // LINE 2: NGRIDS int ngrids; fp.GetLine(&line); if (!fp.ReadData(ngrids) || ngrids < 1) return false; // LINE 3: NAME FILE CStr nameFile; fp.GetLine(&line); if (!fp.ReadData(nameFile) || nameFile == "") return false; m_files.push_back(nameFile); // LINE 4: GRID STATUS if (!fp.GetLine()) return false; // LINE 5: IUPBHSV IUPBFSV if (!fp.GetLine()) return false; for (int i = 0; i < ngrids-1; ++i) { // LINE 6: NAME FILE fp.GetLine(&line); if (!fp.ReadData(nameFile) || nameFile == "") return false; m_files.push_back(nameFile); // LINE 7: GRIDSTATUS if (!fp.GetLine()) return false; // LINE 8: ISHFLG IBFLG IUCBHSV IUCBFSV if (!fp.GetLine()) return false; // LINE 9: MXLGRITER IOUTLGR if (!fp.GetLine()) return false; // LINE 10: RELAXH RELAXF if (!fp.GetLine()) return false; // LINE 11: HCLOSELGR FCLOSELGR if (!fp.GetLine()) return false; // LINE 12: NPLBEG NPRBEG NPCBEG if (!fp.GetLine()) return false; // LINE 13: NPLEND NPREND NPCEND if (!fp.GetLine()) return false; // LINE 14: NCPP if (!fp.GetLine()) return false; // LINE 15: NCPPL [Repeat NCPPL a total of (NPLEND + 1 - NPLBEG) times] if (!fp.GetLine()) return false; } } catch(ioexception) { ErrorStack::Get().PutError("Error in input file format. Aborting."); return false; } return true; } // LgrFileReader::impl::ReadFile