Как определить boost :: escaped_list_separator <char>, чтобы использовать кавычки вокруг токенов? - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь проанализировать данные из текстового файла, который отформатирован предварительно определенным способом, следующим образом:

"GROUP", "SCPT" "DATA", "CPT1", "1", " 0.000 "," 0.004 "," "," - 0.2 "," - 0.5 "," "," "," "

Я использую boost :: tokenizer для анализа, как показано ниже:

using Tokenizer = boost::tokenizer<boost::escaped_list_separator<char>>;
Tokenizer tokens{line}; // line is read from a file stream
for(auto data : tokens) { 
// ... code follows

Однако, это дает мне токены "GROUP" и "SCPT" вместо GROUP и SCPT (то есть включает в себя кавычки в токене).

Я попытался использовать свой собственный разделитель:

boost::escaped_list_separator<char> els('\\', ',\"', '\"');
Tokenizer tokens{line, els}; 

, но это не работает.

Может ли кто-нибудь помочь мне преобразовать приведенные выше данные в

GROUP/SCPT
DATA/CPT1/1/0.000/0.004//-0.2/-0.5///

(где / обозначает токены) вместо

"GROUP"/"SCPT"
"DATA"/"CPT1"/"1"/"0.000"/"0.004"/""/"-0.2"/"-0.5"/""/""/""

Заранее благодарим за любую помощь, которую вы можете оказать.

Андрей

...