X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=listseqscommand.cpp;h=bfbb0788c5092382f22bea643c5405674361dd67;hb=f06b339c5fc4b6d1b9d2a08fe16bf7670bf7aeb4;hp=3fe8360e3241477b869c26f5b1892541e28d84a4;hpb=7bf9a81bba76538ecaf351ae208de3da4bf1b6dd;p=mothur.git diff --git a/listseqscommand.cpp b/listseqscommand.cpp index 3fe8360..bfbb078 100644 --- a/listseqscommand.cpp +++ b/listseqscommand.cpp @@ -49,7 +49,26 @@ string ListSeqsCommand::getHelpString(){ exit(1); } } - +//********************************************************************************************************************** +string ListSeqsCommand::getOutputFileNameTag(string type, string inputName=""){ + try { + string outputFileName = ""; + map >::iterator it; + + //is this a type this command creates + it = outputTypes.find(type); + if (it == outputTypes.end()) { m->mothurOut("[ERROR]: this command doesn't create a " + type + " output file.\n"); } + else { + if (type == "accnos") { outputFileName = "accnos"; } + else { m->mothurOut("[ERROR]: No definition for type " + type + " output file tag.\n"); m->control_pressed = true; } + } + return outputFileName; + } + catch(exception& e) { + m->errorOut(e, "ListSeqsCommand", "getOutputFileNameTag"); + exit(1); + } +} //********************************************************************************************************************** ListSeqsCommand::ListSeqsCommand(){ try { @@ -214,7 +233,7 @@ int ListSeqsCommand::execute(){ if (outputDir == "") { outputDir += m->hasPath(inputFileName); } - string outputFileName = outputDir + m->getRootName(m->getSimpleName(inputFileName)) + "accnos"; + string outputFileName = outputDir + m->getRootName(m->getSimpleName(inputFileName)) + getOutputFileNameTag("accnos"); ofstream out; m->openOutputFile(outputFileName, out); @@ -223,13 +242,13 @@ int ListSeqsCommand::execute(){ //output to .accnos file for (int i = 0; i < names.size(); i++) { - if (m->control_pressed) { outputTypes.clear(); out.close(); remove(outputFileName.c_str()); return 0; } + if (m->control_pressed) { outputTypes.clear(); out.close(); m->mothurRemove(outputFileName); return 0; } out << names[i] << endl; } out.close(); - if (m->control_pressed) { outputTypes.clear(); remove(outputFileName.c_str()); return 0; } + if (m->control_pressed) { outputTypes.clear(); m->mothurRemove(outputFileName); return 0; } m->setAccnosFile(outputFileName); @@ -313,13 +332,7 @@ int ListSeqsCommand::readList(){ if (m->control_pressed) { in.close(); return 0; } - while (binnames.find_first_of(',') != -1) { - string name = binnames.substr(0,binnames.find_first_of(',')); - binnames = binnames.substr(binnames.find_first_of(',')+1, binnames.length()); - names.push_back(name); - } - - names.push_back(binnames); + m->splitAtComma(binnames, names); } } in.close(); @@ -349,14 +362,7 @@ int ListSeqsCommand::readName(){ in >> secondCol; //parse second column saving each name - while (secondCol.find_first_of(',') != -1) { - name = secondCol.substr(0,secondCol.find_first_of(',')); - secondCol = secondCol.substr(secondCol.find_first_of(',')+1, secondCol.length()); - names.push_back(name); - } - - //get name after last , - names.push_back(secondCol); + m->splitAtComma(secondCol, names); m->gobble(in); } @@ -413,14 +419,14 @@ int ListSeqsCommand::readAlign(){ if (!in.eof()) { in >> junk; } else { break; } } - + //m->getline(in); while(!in.eof()){ if (m->control_pressed) { in.close(); return 0; } in >> name; //read from first column - + //m->getline(in); //read rest for (int i = 0; i < 15; i++) { if (!in.eof()) { in >> junk; }