#include <string>

#include <iostream>

using std::cout;

using std::string;



#include <boost/tokenizer.hpp>

using boost::tokenizer;

using boost::escaped_list_separator;



typedef tokenizer<escaped_list_separator<char> > so_tokenizer;



int main()

{

    string a[] = { ";12;25;25;8;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8",

                   "20;12;25;25;;3;1;10;3;1;10;3;1;10;3;1;10;12;8;8" };



    for (int i = 0; i < 2; i++)

    {

        std::cout << a[i] << "\n";

        so_tokenizer tok(a[i], escaped_list_separator<char>('\\', ';', '\"'));

        for(so_tokenizer::iterator beg=tok.begin(); beg!=tok.end(); ++beg)

        {

            cout << "  tok=[" << *beg << "]\n";

        }

    }



    return 0;

}

