00001 #include "line_parser.h"
00002 #include "tools/conversion.h"
00003
00004 LineParser::LineParser(std::string _str)
00005 {
00006 str = _str;
00007 while(str.size() > 0
00008 && (str[str.size() - 1] == '\n'
00009 || str[str.size() - 1] == '\r'
00010 || str[str.size() - 1] == '\t'
00011 || str[str.size() - 1] == ' ' ))
00012 str = str.substr(0, str.size() - 1);
00013 SkipBlank();
00014 }
00015
00016 void LineParser::SkipBlank()
00017 {
00018 while(str.size() != 0
00019 && (str[0] == ' '
00020 || str[0] == '\t'
00021 || str[0] == '\r'
00022 || str[0] == '\n' ))
00023 str = str.substr(1, str.size() - 1);
00024 }
00025
00026 bool LineParser::GetString(std::string &sub)
00027 {
00028 sub = "";
00029 if(str == "")
00030 return false;
00031
00032 unsigned int i = 0;
00033 while(i < str.size()
00034 && str[i] != ' '
00035 && str[i] != '\t'
00036 && str[i] != '\n'
00037 && str[i] != '\r')
00038 i++;
00039
00040 sub = str.substr(0, i);
00041 str = str.substr(i, str.size() - i);
00042 SkipBlank();
00043 return true;
00044 }
00045
00046 bool LineParser::GetInt(int& nbr)
00047 {
00048 std::string sub = "";
00049 nbr = 0;
00050 if(!GetString(sub))
00051 return false;
00052
00053 if(!str2int(sub, nbr))
00054 return false;
00055 return true;
00056 }