apps/astreamer/helpers.cpp

Go to the documentation of this file.
00001 #include "helpers.h"
00002 #include <iostream>
00003 using namespace std;
00004 
00005 bool String::split(const string &str, char delimiter, string &left, string &right) {
00006         left = "";
00007         right = "";
00008         int i = str.find(delimiter);
00009 //cerr << "_______" << endl;
00010 //cerr << "delimiter == |" << delimiter << "|, i == " << i << endl;
00011         if(i > 0 && i < (int)str.length()) {
00012                 const char *c = str.c_str();
00013 //cerr << 
00014                 left.insert(0, c, i);
00015                 right.insert(0, &c[i + 1], str.length() - i - 1);
00016                 return true;
00017         } else
00018                 left = str;
00019         return false;
00020 }
00021 
00022 list<string> String::split_to_list(string str, char delimiter) {
00023         list<string> l;
00024         if((str.c_str())[str.length() - 1] != delimiter)
00025                 str += delimiter;
00026         const char *c = str.c_str();
00027         int j = 0;
00028         for(int i = 0; c[i]; i++) {
00029                 if(c[i] == delimiter) {
00030                         string a;
00031                         a.insert(0, &c[j], i - j);
00032                         j = i + 1;
00033                         l.push_back(a);
00034                 }
00035         }
00036         return l;
00037 }
00038 
00039 map<string, string> String::split_list_to_map(const list<string> &l, char delimiter) {
00040         map<string, string> m;
00041         for(list<string>::const_iterator it = l.begin(); it != l.end(); it++) {
00042                 int i = (*it).find(delimiter);
00043                 if(i > 0 && i < (int)(*it).length()) {
00044                         const char *c = (*it).c_str();
00045                         string n, v;
00046                         n.insert(0, c, i);
00047                         v.insert(0, &c[i + 1], (*it).length() - i - 1);
00048                         m[n] = v;
00049                 }
00050         }
00051         return m;
00052 }

Generated on Fri Nov 28 00:06:21 2008 for elphel by  doxygen 1.5.1