ZString modifications.

This commit is contained in:
Brad Arant 2021-07-31 11:15:07 -07:00
parent ff2c2b7432
commit 78cb2fdd10
2 changed files with 38 additions and 5 deletions

View File

@ -8,6 +8,16 @@ namespace coreutils {
return os; return os;
} }
std::ostream& operator<<(std::ostream& os, const std::string& string) {
os << string;
return os;
}
std::ostream& operator+(std::ostream& os, const ZString& zstring) {
os << zstring;
return os;
}
ZString::ZString() { ZString::ZString() {
data = NULL; data = NULL;
length = 0; length = 0;
@ -42,11 +52,15 @@ namespace coreutils {
return std::string(data, len); return std::string(data, len);
} }
std::vector<ZString> ZString::split(std::string &delimiter, size_t maxSize) {
return split(ZString(delimiter.c_str()), maxSize);
}
std::vector<ZString> ZString::split(ZString delimiter, size_t maxSize) { std::vector<ZString> ZString::split(ZString delimiter, size_t maxSize) {
list.clear(); list.clear();
if(length == 0) { if(length == 0) {
list.push_back(ZString((char *)"")); list.push_back(ZString((char *)""));
return list; return list;
} }
char *end = data + length; char *end = data + length;
@ -94,10 +108,14 @@ namespace coreutils {
bool ZString::equals(ZString zstring) { bool ZString::equals(ZString zstring) {
if(zstring.getLength() != getLength()) if(zstring.getLength() != getLength())
return false; return false;
return strncmp(data, zstring.getData(), getLength()) == 0; return strncmp(data, zstring.getData(), getLength()) == 0;
} }
bool ZString::equals(std::string string) {
return strncmp(string.c_str(), getData(), getLength()) == 0;
}
bool ZString::ifNext(char *value) { bool ZString::ifNext(char *value) {
bool test = (strncmp(cursor, value, strlen(value)) == 0); bool test = (strncmp(cursor, value, strlen(value)) == 0);
if(test) if(test)

View File

@ -61,6 +61,9 @@ namespace coreutils {
/// ///
friend std::ostream& operator<<(std::ostream& os, const ZString& zstring); friend std::ostream& operator<<(std::ostream& os, const ZString& zstring);
friend std::ostream& operator<<(std::ostream& os, const std::string& string);
friend std::ostream& operator+(std::ostream& os, const ZString& zstring);
/// ///
/// Return a vector of ZString objects which contain the parts established /// Return a vector of ZString objects which contain the parts established
@ -95,6 +98,12 @@ namespace coreutils {
std::vector<ZString> split(ZString delimiter, size_t maxSize = 0); std::vector<ZString> split(ZString delimiter, size_t maxSize = 0);
///
///
///
std::vector<ZString> split(std::string &delimiter, size_t maxSize = 0);
/// ///
/// Use getTokenInclude with a list of character to allow the forwarding /// Use getTokenInclude with a list of character to allow the forwarding
/// of the cursor through the data until a character that is not in the /// of the cursor through the data until a character that is not in the
@ -133,6 +142,12 @@ namespace coreutils {
bool equals(ZString zstring); bool equals(ZString zstring);
///
///
///
bool equals(std::string string);
/// ///
/// Advance the cursor the length of the provided value if the value at /// Advance the cursor the length of the provided value if the value at
/// the cursor position is equal to the value provided. /// the cursor position is equal to the value provided.