30 Nisan 2017 Pazar

tokenizer escaped_list_separator Sınıfı

Giriş
Şu satırı dahil ederiz.
#include <boost/tokenizer.hpp>
Boş Token
Açıklaması şöyle
If multiple consecutive delimiters are encountered empty tokens will be produced when using boost::escaped_list_separator. Unlike boost::char_separator, boost::escaped_list_separator does not provide any constructor that allows you to pass in whether to keep or discard any empty tokens produced.
Elimizde şöyle bir string olsun.
"2   , 14   33  50   \"AAA BBB\""
Çıktı olarak şunu alabiliriz. 2 -> 3 tane boşluk->14...

Kullanım
boost::tokenizer ile birlikte kullanılır. boost::tokenizer sınıfının kurucu metoduna ikici parametre olarak geçilir. Şöyle yaparız.
boost::tokenizer<boost::escaped_list_separator<wchar_t>,
std::wstring::const_iterator, std::wstring> tok (str, separator);

for(auto beg=tok.begin(); beg!=tok.end();++beg)
  std::wcout << *beg << std::endl;
Constructor
Birinci parametre escape chars, ikinci parametre delimiter chars, üçünü parametre quote chars olarak belirtirlir.
Delimiter parametresi için açıklama şöyle
Any character in the string c, is considered to be a separator.
Örnek
Şöyle yaparız.
escaped_list_separator<char> list ('\\', ';', '\"')
Örnek
Şöyle yaparız.
std::wstring escSep(L"\\"); //escape character
std::wstring delim(L" \t\r\n,"); //split on spaces, tabs, new lines, commas
std::wstring quotes(L"\""); //allow double-quoted values with delimiters within

boost::escaped_list_separator<wchar_t> separator(escSep, delim, quotes);

Hiç yorum yok:

Yorum Gönder