X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=common%2FclitkCommon.txx;h=b5a34712a9988438db9ec4afbf06c35d21092f76;hb=c7f6f682ddc01d2a41740bbdb806f9ef967b57d5;hp=c2e9a4ae3f92acca36287309d416971cc3a1e574;hpb=1e034c70105f0926939acaaa27ddb46e904ae8bf;p=clitk.git diff --git a/common/clitkCommon.txx b/common/clitkCommon.txx index c2e9a4a..b5a3471 100644 --- a/common/clitkCommon.txx +++ b/common/clitkCommon.txx @@ -17,13 +17,53 @@ ======================================================================-====*/ #ifndef CLITKCOMMON_TXX #define CLITKCOMMON_TXX -/** - ------------------------------------------------- - * @file clitkCommon.txx - * @author David Sarrut - * @date 18 May 2006 - * - -------------------------------------------------*/ + +//------------------------------------------------------- +// Utility functions for text file parsing (author: joel schaerer) + +//-------------------------------------------------------------------- +template +ElementType parse_value(std::string str) +{ + std::istringstream parser(str); + ElementType value; + parser >> value; + assert(!parser.fail()); + return value; +} +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +template +std::vector parse_string(std::string str,char delim) +{ + std::istringstream ss(str); + std::string token; + std::vector result; + while (std::getline(ss,token,delim)) { + result.push_back(parse_value(token)); + } + return result; +} +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +template +std::vector > parse_file(const char* filename,char delim) +{ + std::ifstream fs(filename); + std::string line; + std::vector > result; + while (std::getline(fs,line)) { + if (line[0] != '#') //skip comments + result.push_back(parse_string(line,delim)); + } + return result; +} +//-------------------------------------------------------------------- + //-------------------------------------------------------------------- // Convert float, double ... to string