?
@firefly, Ok dann bin ich ja richtig.
Momentan zerlege ich den String mit boost::sregex_token_iterator und transformiere jedes Teil mit QString::toLocal8Bit() in eine Zeile (QStringList).
Der Code hierzu sieht wie folgt aus:
QStringList tokenize(const std::string& s, const boost::regex& pattern){
boost::sregex_token_iterator it(s.begin(), s.end(), pattern, -1), end_it;
QStringList results;
results.reserve(static_cast<int>(std::distance(it, end_it)));
std::transform(it, end_it, std::back_inserter(results), [](const std::string& match){
return QString::fromLocal8Bit(match.c_str());
});
return results;
}
Vielleicht fehlt in der main() noch ein std::cin.imbue(std::locale{""}), damit ich stdin mit der systemweiten Locale auslesen kann, weil sonst wird immer die C Locale benutzt. Ist doch so, oder?
Und dann, ja, weil ich Qt6 benutze könnte ich auch direkt Anwendung für QStringTokenizer finden. Was aber nun schneller ist, entweder Boost oder Qt, das müsste ich dann testen, aber ich glaube das käme hier nicht mehr zur Relevanz.
Danke jedenfalls für die Hilfe.