template <class T> void stringsToCSV(const T& tokens, string& s, char sep) { s.erase(); for (typename T::const_iterator it = tokens.begin(); it != tokens.end(); it++) { bool needquotes = false; if (it->empty() || it->find_first_of(string(1, sep) + "\"\n") != string::npos) { needquotes = true; } if (it != tokens.begin()) { s.append(1, sep); } if (needquotes) { s.append(1, '"'); } for (unsigned int i = 0; i < it->length(); i++) { char car = it->at(i); if (car == '"') { s.append(2, '"'); } else { s.append(1, car); } } if (needquotes) { s.append(1, '"'); } } }
template <class T> void stringsToString(const T& tokens, string& s) { for (typename T::const_iterator it = tokens.begin(); it != tokens.end(); it++) { bool hasblanks = false; if (it->find_first_of(" \t\n") != string::npos) { hasblanks = true; } if (it != tokens.begin()) { s.append(1, ' '); } if (hasblanks) { s.append(1, '"'); } for (unsigned int i = 0; i < it->length(); i++) { char car = it->at(i); if (car == '"') { s.append(1, '\\'); s.append(1, car); } else { s.append(1, car); } } if (hasblanks) { s.append(1, '"'); } } }
static String arrayToString(const T &arr) { std::vector<String> args; typename T::const_iterator i; for (i=arr.begin(); i!=arr.end(); ++i) { args.push_back(i->toString()); } return join(args,';'); }
inline unsigned int findMaxSize(const T &dataIn, const unsigned int PriorMax = 0) { typename T::const_iterator it; unsigned int MaxSize = PriorMax; for (it = dataIn.begin(); it != dataIn.end(); it++) { updateMax(MaxSize, static_cast<unsigned int>(it->size())); } return MaxSize; }
void writeData(ostream &fout, const int width, const T &data, const int startTime, const int endTime, const int startN, const int endN) { typename T::const_iterator it = data.begin(); // increment to the start position for (int inc = 0; inc < startTime-1; inc++, it++) {} for (int i = startTime; i <= endTime; i++, it++) { // 0-based vs. 1-based causes - 1 below for (int j = startN - 1; j < endN - 1; j++) { fout << std::setw(width) << it->at(j); } fout << "\n"; } }
QByteArray serializeMap(const T &map, bool &success) { QByteArray str = "{ "; QList<QByteArray> pairs; for (typename T::const_iterator it = map.begin(), itend = map.end(); it != itend; ++it) { QByteArray serializedValue = serialize( it.value() ); if( serializedValue.isNull() ) { success = false; break; } pairs << sanitizeString( it.key() ).toUtf8() + " : " + serializedValue; } str += join(pairs, ", "); str += " }"; return str; }