В зависимости от региональных настроек разделитель CSV (или разделитель списка) может быть ;
вместо ,
, что, по крайней мере, на Windows зависит от региональных настроек.
Есть ли кроссплатформенный способ обнаружить разделитель CSV в Qt?
Если кроссплатформенный способ недоступен, существует ли способ для Windows?
Есть QLocale::groupSeparator()
:
QChar separator = QLocale().groupSeparator();
Редактировать:
Но это не правильный ответ. Разделитель групп — это символ, используемый в длинных числах между группами номеров, например: «1 234,56». В этом примере разделителем группы является запятая, а десятичным разделителем — точка.
Кажется, что QLocale вообще не содержит разделителя списка. Вы можете попытаться угадать, какой десятичный разделитель используется. Если десятичный разделитель .
затем используйте ,
в качестве разделителя CSV, если десятичный разделитель ,
затем используйте ;
в качестве разделителя CSV. Но я не знаю, охватывает ли это все языки.
Других решений пока нет …