/** * Loads the user entered batchlist file into a private variable for later use * * @param file The batchlist file to load * * @history 2010-03-26 Sharmila Prasad - Remove the restriction of the number of * columns in the batchlist file to 10. * @throws Isis::IException::User - The batchlist does not contain any data */ void UserInterface::LoadBatchList(const QString file) { // Read in the batch list TextFile temp; try { temp.Open(file); } catch (IException &e) { QString msg = "The batchlist file [" + file + "] could not be opened"; throw IException(IException::User, msg, _FILEINFO_); } p_batchList.resize(temp.LineCount()); for(int i = 0; i < temp.LineCount(); i ++) { QString t; temp.GetLine(t); // Convert tabs to spaces but leave tabs inside quotes alone t = IString(t).Replace("\t", " ", true).ToQt(); t = IString(t).Compress().ToQt().trimmed(); // Allow " ," " , " or ", " as a valid single seperator t = IString(t).Replace(" ,", ",", true).ToQt(); t = IString(t).Replace(", ", ",", true).ToQt(); // Convert all spaces to "," the use "," as delimiter t = IString(t).Replace(" ", ",", true).ToQt(); int j = 0; QStringList tokens = t.split(","); foreach(QString token, tokens) { // removes quotes from tokens. NOTE: also removes escaped quotes. token = token.remove(QRegExp("[\"']")); p_batchList[i].push_back(token); j ++ ; } p_batchList[i].resize(j); // Every row in the batchlist must have the same number of columns if(i == 0) continue; if(p_batchList[i - 1].size() != p_batchList[i].size()) { QString msg = "The number of columns must be constant in batchlist"; throw IException(IException::User, msg, _FILEINFO_); } }