00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00028 #ifndef _POORPERL_H
00029 #define _POORPERL_H
00030
00031 #include <map>
00032 #include <string>
00033 #include <vector>
00034
00035 using namespace std;
00036
00037
00038
00039 template < class Container, class Item >
00040 bool exists(const Container &container, const Item &item)
00041 {
00042 return(container.end() != container.find(item));
00043 }
00044
00045
00046
00047
00048 template< class Key, class Value >
00049 bool exists(const map< Key, Value > &mymap, const Key &key, Value &value)
00050 {
00051 typename map< Key, Value >::const_iterator itr;
00052 itr = mymap.find(key);
00053 bool found = (mymap.end() != itr);
00054 if (found)
00055 value = (*itr).second;
00056 return(found);
00057 }
00058
00059
00060
00061 char read_till_char(istream &istr, string &name, string limits,
00062 string ignore = "");
00063
00064 inline void read_line(istream &istr, string &line)
00065 {
00066 read_till_char(istr, line, "\n");
00067 }
00068
00069
00070
00071
00072 bool string_matches_non_space(const string &text);
00073
00074 bool string_matches(const string &text, const string &pattern);
00075 string::size_type string_split(const string &text, const string &splitters,
00076 vector< string > &items);
00077 void string_substitute(string &text, const string &original,
00078 const string &substitute);
00079
00080
00081
00082 #endif // _POORPERL_H