]> sigrok.org Git - pulseview.git/commitdiff
util: Introduce string tokenize helper routine
authorGerhard Sittig <redacted>
Sun, 25 Jun 2017 11:13:01 +0000 (13:13 +0200)
committerGerhard Sittig <redacted>
Sun, 25 Jun 2017 18:32:58 +0000 (20:32 +0200)
Introduce a helper routine which splits a string into tokens that were
separated by a delimiter.

pv/util.cpp
pv/util.hpp

index 8f2d7d2544cd8e30301a28c56f6537269dbe759a..a452aac4b6eaef7e51f85b9cd6d0b0f37f7b5e19 100644 (file)
@@ -224,5 +224,27 @@ QString format_time_minutes(const Timestamp& t, signed precision, bool sign)
        return s;
 }
 
+/**
+ * Split a string into tokens at occurances of the separator.
+ *
+ * @param[in] text the input string to split
+ * @param[in] separator the delimiter between tokens
+ *
+ * @return a vector of broken down tokens
+ */
+vector<string> split_string(string text, string separator)
+{
+       vector<string> result;
+       size_t pos;
+
+       while ((pos = text.find(separator)) != std::string::npos) {
+               result.push_back(text.substr(0, pos));
+               text = text.substr(pos + separator.length());
+       }
+       result.push_back(text);
+
+       return result;
+}
+
 } // namespace util
 } // namespace pv
index bc71624bf3109fc2cb498778e943ac7acb3480f0..274839f8b7fd5cbd898bb451f032969a20669120 100644 (file)
@@ -21,6 +21,8 @@
 #define PULSEVIEW_UTIL_HPP
 
 #include <cmath>
+#include <string>
+#include <vector>
 
 #ifndef Q_MOC_RUN
 #include <boost/multiprecision/cpp_dec_float.hpp>
@@ -29,6 +31,9 @@
 #include <QMetaType>
 #include <QString>
 
+using std::string;
+using std::vector;
+
 namespace pv {
 namespace util {
 
@@ -112,6 +117,8 @@ QString format_time_si_adjusted(const Timestamp& t, SIPrefix prefix,
 QString format_time_minutes(const Timestamp& t, signed precision = 0,
        bool sign = true);
 
+vector<string> split_string(string text, string separator);
+
 } // namespace util
 } // namespace pv