diff --git a/uppsrc/Core/Core.t b/uppsrc/Core/Core.t index bebc2d99d..c577a64cd 100644 --- a/uppsrc/Core/Core.t +++ b/uppsrc/Core/Core.t @@ -866,7 +866,7 @@ frFR("") huHU("Az időpont a köv. kettő között legyen: ") itIT("") nlNL("Tijd moet vanaf ") -plPL("") +plPL("Czas musi być z zakresu ") roRO("Ora trebuie să fie în intervalul ") ruRU("Время должно быть в интервале") skSK("Čas musí byť v rozsahu ") diff --git a/uppsrc/Core/Util.cpp b/uppsrc/Core/Util.cpp index d24337696..54d2644e0 100644 --- a/uppsrc/Core/Util.cpp +++ b/uppsrc/Core/Util.cpp @@ -304,6 +304,24 @@ Vector Split(const char *s, int chr, bool ignoreempty) { return Split(s, ct, ignoreempty); } +struct StringSplit : TextTest { + String test; + + virtual const char *Accept(const char *s) const { + int l = test.GetCount(); + if(l && memcmp(~test, s, l) == 0) + return s + l; + return NULL; + } +}; + +Vector Split(const char *s, const String& delim, bool ignoreempty) +{ + StringSplit ss; + ss.test = delim; + return Split(s, ss, ignoreempty); +} + String Join(const Vector& im, const String& delim) { String r; for(int i = 0; i < im.GetCount(); i++) { diff --git a/uppsrc/Core/Util.h b/uppsrc/Core/Util.h index 7f4ed4214..16320ed52 100644 --- a/uppsrc/Core/Util.h +++ b/uppsrc/Core/Util.h @@ -273,6 +273,7 @@ public: Vector Split(const char *s, const TextTest& delim, bool ignoreempty = true); Vector Split(const char *s, int (*filter)(int), bool ignoreempty = true); Vector Split(const char *s, int chr, bool ignoreempty = true); +Vector Split(const char *s, const String& delim, bool ignoreempty = true); String Join(const Vector& im, const String& delim); WString Join(const Vector& im, const WString& delim);