Класс FarStringTokenizer

Класс FarStringTokenizer представляет собой вспомогательный класс, предназначенный для разбиения строки на токены (фрагменты, отделенные друг от друга определенным символом - например, пробелом или запятой). FarStringTokenizer никак не модифицирует строку, разбиение которой он осуществляет.

Строка, которую нужно разбить на токены, и разделительный символ (по умолчанию - запятая), указываются либо в конструкторе класса FarStringTokenizer, либо, если используется конструктор по умолчанию, в методе Attach(). Затем, пока метод HasNext() возвращает true, вызов метода NextToken() позволяет получить следующий токен.

FarStringTokenizer tokenizer (Opt.DescFName);
while (tokenizer.HasNext()) 
    menu.AddItem (tokenizer.NextToken());

Методы

FarStringTokenizer()

Конструктор по умолчанию. Прежде чем использовать экземпляр класса, инициализированный таким конструктором, необходимо связать его со строкой для разбиения, вызвав метод Attach().

FarStringTokenizer (const char *text, char separator = ',', bool ignoreWhitespace = true)

Конструктор. Задает строку, разбиение которой будет осуществляться, и символ, разделяющий токены. Если флаг ignoreWhitespace установлен в true, пробельные символы (пробелы или табуляции), непосредственно предшествующие или следующие за разделительными символами, пропускаются и не включаются в состав токенов.

void Attach (const char *text, char separator = ',', bool ignoreWhitespace = true)

Задает строку, разбиение которой будет осуществляться, и символ, разделяющий токены. Значение параметров идентично значению параметров конструктора класса.

bool HasNext() const

Возвращает true, если разбиение строки еще не закончилось (то есть, следующий вызов NextToken() вернет непустую строку).

FarString NextToken()

Возвращает следующий токен из строки. Если первый символ токена - кавычка, возвращается фрагмент до следующей кавычки, или до конца строки. В противном случае, возвращается фрагмент до следующего разделительного символа. Если разбиение уже дошло до конца строки, возвращает пустую строку.

FarString GetToken (int index) const

Позволяет получить токен с указанным индексом (нумерация токенов начинается с 0). Вызов GetToken() никак не зависит от текущей позиции разбиения, установленной вызовами NextToken(), и не влияет на нее.

int GetCurIndex() const

Возвращает номер текущего токена в строке (токена, который вернет следующий вызов NextToken()).