Класс FarString представляет собой компактную и эффективную реализацию класса "строка ASCII-символов". Использование этого класса влечет существенно меньшие затраты по объему кода плагина, чем, например, использование класса std::string из стандартной библиотеки STL. Класс FarString реализован с использованием механизма подсчета ссылок, поэтому операции копирования строки влекут за собой минимальные накладные расходы. Это, в частности, делает оправданным возвращение из функций экземпляров FarString по значению. Кроме того, FarString использует принцип "выделения памяти с запасом", позволяющий увеличить эффективность операций конкатенации строк.
FarString()
Конструктор по умолчанию. FarString инициализируется пустой строкой.
FarString (const char *text)
Конструктор, инициализирующий FarString указанной null-terminated строкой. Если text = NULL, инициализирует FarString пустой строкой.
FarString (const char *text, int length)
Конструктор, инициализирующий FarString последовательностью символов указанной длины. text не может быть равен NULL.
FarString (char c, int nCount)
Конструктор, создающий строку из nCount копий символа c.
FarString (const FarString &str)
Конструктор копирования.
const FarString &operator= (const FarString &rhs)
const FarString &operator= (const char *text)
const FarString &operator= (char ch)
Оператор присваивания.
operator const char*() const
const char *c_str() const
Оператор и функция для преобразования FarString в стандартную C-строку. Неявное преобразование поддерживается только для константных строк; если необходимо передать FarString в функцию, принимающую неконстантый char *, следует использовать метод GetBuffer().
const char *data() const
Метод для преобразования FarString в C-строку. В отличие от метода c_str(), для строки нулевой длины возвращает NULL.
bool operator== (const FarString &rhs) const
Оператор сравнения. Помимо этого оператора, FarString реализует полный набор операторов сравнения (==, !=, <, >, <=, >=) для всех комбинаций FarString и const char *.
int Compare (const char *Str) const
int Compare (const char *Str, size_t nLength) const
Функции для сравнения строк с учетом регистра. Возвращают положительное значение, если строка, для которой вызван метод, больше (идет позже в лексикографическом порядке), чем строка Str; отрицательное, если строка меньше Str, или 0 в случае равенства.
int CompareNoCase (const char *Str) const
int CompareNoCase (const char *Str, size_t nLength) const
Функции, аналогичные Compare(), но осуществляющие сравнение без учета регистра. Поскольку для сравнения используется функция CompareString() из Win32 API, русские строки также обрабатываются корректно.
char *GetBuffer (int nLength = -1)
Получает указатель на внутренний буфер строки. Указатель, возвращаемый этим методом, можно передавать в функции, модифицирующие строку; при этом гарантируется, что модифицирована будет только та копия строки, для которой был вызван GetBuffer(). Если функция, модифицирующая строку, увеличит ее длину, то вы можете указать максимальную длину, которую строка будет иметь после модификации, в параметре nLength.
Если функция, модифицирующая строку, изменяет также ее длину, после ее вызова необходимо вызвать функцию ReleaseBuffer() для корректировки длины строки, кэшируемой внутри класса.
void ReleaseBuffer (int newLength = -1)
Выполняет корректировку длины строки после того, как она была модифицирована внешней функцией. Если новая длина строки точно известна, можно передать ее в параметре newLength. Если newLength не указана, длина строки будет определена автоматически при помощи функции strlen().
char operator[] (int index) const
char& operator[] (int index)
Получает символ в строке по указанному индексу. Корректность индекса не проверяется. Второй приведенный вариант оператора позволяет модифицировать символ строки по указанному индексу.
void SetText (const char *text, int length)
Присваивает объекту FarString последовательность символов указанной длины. Если text равен NULL, присваивает объекту пустую строку.
int Length() const
Возвращает длину строки.
bool IsEmpty() const
Возвращает true, если строка имеет нулевую длину, и false во всех остальных случаях.
void SetLength (size_t newLength)
Расширяет или обрезает строку, с сохранением содержимого. Если размер строки увеличивается (newLength больше текущей длины строки), содержимое буфера после текущего конца строки не определено.
void Empty()
Очищает строку (устанавливает ее длину в 0).
FarString &operator += (const FarString &str)
FarString &operator += (const char *s)
FarString &operator += (char c)
Добавляет к строке указанную последовательность символов (заданную в виде FarString или null-terminated) или один символ.
FarString Mid (int nFirst, int nCount) const
FarString Mid (int nFirst) const
Возвращает фрагмент строки, начиная с указанного символа. Вариант функции с двумя параметрами возвращает фрагмент указанной длины, с одним параметром - фрагмент с указанного символа и до конца строки.
FarString Left(int nCount) const
Возвращает фрагмент из первых nCount символов строки.
FarString Right (size_t nCount) const
Возвращает фрагмент из последних nCount символов строки.
int Insert (int nIndex, const FarString &Str)
int Insert (int nIndex, const char *Str)
int Insert (int nIndex, const char *Str, size_t nLength)
Вставляет указанную последовательность символов в середину строки, начиная с указанного индекса. Последовательность символов может быть задана в виде FarString, NULL-terminated строки или массива символов с известной длиной. Возвращает количество вставленных символов.
int Delete (int nIndex, int nCount = 1)
Удаляет из середины строки последовательность символов указанной длины, начиная с указанного индекса. Возвращает длину строки после удаления.
int IndexOf (char c) const
Возвращает индекс в строке указанного символа, либо -1, если строка не содержит указанного символа.
int LastIndexOf (char c) const
Возвращает индекс последнего вхождения указанного символа в строку, либо -1, если строка не содержит указанного символа.
FarString ToOEM() const
FarString ToANSI() const
Возвращает копию строки, преобразованную в набор символов OEM или ANSI, соответственно.
void MakeUpper()
void MakeLower()
Преобразует строку к верхнему или нижнему региcтру, соответственно. Преобразование осуществляется на месте, без создания копии строки.
void Trim()
Обрезает начальные и конечные пробелы в строке.
void TrimLeft()
Обрезает начальные пробелы в строке.
void TrimRight()
Обрезает конечные пробелы в строке.