Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Краткие теоретические сведения. AnsiString — тип строк






AnsiString — тип строк

В C++Builder тип строка АnsiString реализован как класс, объявленный в файле vcl/dstring.h и аналогичный типу длинных строк в Delphi. Это строки с нулевым символом в конце. При объявлении переменные типа AnsiString инициализируются пустыми строками.

Для AnsiString определены операции отношения = =,! =, >, <, > =, < =. Сравнение производится с учетом регистра. Сравниваются коды символов, начиная с первого, и если очередные символы не одинаковы, строка, содержащая символ с меньшим кодом считается меньше. Если все символы совпали, но одна строка длиннее и в ней имеются еще символы, то она считается больше, чем более короткая.

Для AnsiString определены операции присваивания =, += и операция склеи­вания строк (конкатенации) +. Определена также операция индексации [ ]. Индексы начинаются с 1. Например, если S1 = " Привет", то S1[1] вернет 'П', Sl[2] вернет 'p' и т.д.

Основные методы класса AnsiString (в описаниях методов через S1 обозначена строка, метод которой используется):

 

Метод Синтаксис / Описание
AnsiCompare int _ fastcall AnsiCompare(const AnsiString& rhs) const Сравнивает данную строку S1 с rhs с учетом регистра. Срав­нение зависит от текущих установок Windows и может отли­чаться от сравнения, осуществляемого операциями сравне­ния. Возвращает значение > 0 при SI > rhs, значение < 0 при SI < rhs и значение 0 при SI = rhs
AnsiCompareIC int _ fastcall AnsiCompareIC(const AnsiString& rhs) const Осуществляет сравнение, аналогичное AnsiCompare, но без учета регистра
AnsiLastChar x; har* fastcall AnsiLastChar() const Возвращает указатель на последний значащий символ. Под­держивает многобайтные символы
AnsiPos int _ fastcall AnsiPos(const AnsiString& subStr) const Возвращает индекс первого символа первого вхождения subStr в S1. Индексы начинаются с 1. Если subStr не содер­жится в S1, возвращается 0. В отличие от Pos поддерживает многобайтные символы
AnsiString _ fastcall AnsiString(apryMeHT) Конструктор класса. В зависимости от типа аргумента создает:
Аргумент Функция создает
Отсутствует Пустую строку
const char* src Строку с нулевым символом в конце из массива символов
const AnsiString& src Копию AnsiString src
const char* src, unsigned char len Строку с нулевым символом в конце, являющуюся копией первых len сим­волов из src
const wchar_t* src Строку с нулевым символом в конце из массива src символов типа wchar_t
int src Строку с нулевым символом в конце из массива src целых значений символов
double src Строку с нулевым символом в конце из массива src значений символов с плавающей запятой; преобразуются первые 15 значащих разрядов
c_str char* fastcall c_str()const Возвращает указатель на строку с нулевым символом в конце, содержащую те же символы, что в AnsiStrmg
CurrToStr static AnsiString fastcall CurrToStr(Currency value) Преобразует значение value типа Currency в строку
CurrToStrF static AnsiString fastcall CurrToStrF(Currency value, TstringFloatFormat format, int digits) Преобразует значение value типа Currency в строку, исполь­зуя указанный формат преобразования чисел с плавающей запятой (см. разд. «TstringFloatFormat — тип»). Параметр определяет задаваемое число разрядов. Функция соответству­ет функции CurrToStrF с заданной точностью 19 разрядов
Delete void fastcall Delete(int index, int count) Удаляет из строки, начиная с позиции index число символов, равное count
floatToStrF static AnsiString fastcall FloatToStrF(long double value, TstringFloatFormat format, int precision, int digits) Преобразует значение value с плавающей запятой в строку, используя указанный формат (см. разд. «TstringFloatFor­mat — тип»). Параметры precision и digits задают точность и число разрядов. Точность должна задаваться не более 7 для типа float, не более 15 для double и не более 18 для Exten­ded. Число разрядов зависит от выбранного формата
Format static AnsiString fastcall Format(const AnsiString& format, const TVarRec *args, int size) Формирует строку, используя строку формата format и мас­сив аргументов args
FormatFloat static AnsiString fastcall ForniatFloat(const AnsiString& format, const long double& value) Преобразует значение value с плавающей запятой в строку, ис­пользуя указанный формат format
Insert void _ fastcall Insert(const AnsiString& str, int index) Вставляет в строку подстроку str, начиная с индекса index
IntToHex static AnsiString fastcall IntToHex(int value, int digits) Преобразует значение value в строку, содержащую минимум digits шестнадцатеричных цифр
IsDelimiter bool _ fastcall IsDelimiter(const AnsiString& delimiters, int index) const Возвращает true, если символ с индексом index является од­ним из разделителей, указанных в строке delimiters. Работа­ет и для многобайтных символов
IsEmpty bool _ fastcall IsEmpty() const Возвращает true, если строка пустая
LastDelimiter int _ fastcall LastDelimiter(const AnsiString& delimiters) const Возвращает последний из символов строки, входящих в стро­ку разделителей delimiters. Например, если AnsiString s = " с: \\filename. ext"; то s. LastDelimiter (" \\.: "); вернет 12 (индекс символа точки)
Length int _ fastcall Length() const Возвращает число символов в строке
LowerCase AnsiString fastcall LowerCase() const Возвращает строку, в которой все символы приведены к ниж­нему регистру. Не влияет на исходную строку
Pos int _ fastcall Pos(const AnsiString& subStr) const Возвращает индекс первого символа первого вхождения subStr в S1. Индексы начинаются с 1. Если subStr не содер­жится в S1, возвращается 0. В отличие от AnsiPos не поддер­живает многобайтные символы
SetLength void _ fastcall SetLength(int newLength) Усекает строку до newLength символов. Если исходная стро­ка короче, то она не увеличивается
StringOfChar static AnsiString fastcall StringOfChar(char ch, int count) Возвращает строку, в которой символ ch повторен count раз. Например, AnsiString s = AnsiString:: StringOfChar ('A', 10); задаст строке s значение «АААААААААА»
Substring AnsiString fastcall SubString(int index, int count) const Возвращает подстроку, начинающуюся с символа в позиции index и содержащую count символов
ToDouble double fastcall ToDouble() const Преобразует строку в число с плавающей запятой. Если стро­ка не соответствует формату числа с плавающей запятой, ге­нерируется исключение EConvertError
Tolnt int _ fastcall Tolnt() const Преобразует строку в целое число. Если строка не соответст­вует формату целого числа, генерируется исключение EConvertError
ToIntDef int _ fastcall ToIntDef(int defaultValue) const Преобразует строку в целое число. Если строка не соответствует формату целого числа, возвращается значение по умолчанию defaultValue
Trim AnsiString fastcall Trim() const Возвращает строку, соответствующую исходной, но без пробель­ных символов до и после значащих символов
TrimLeft AnsiString fastcall TrimLeft() const Возвращает строку, соответствующую исходной, но без началь­ных пробельных символов.
TrimRight AnsiString fastcall TrimRight() const Возвращает строку, соответствующую исходной, но без за­ключительных пробельных символов
Unique void _ fastcall Unique() Делает строку уникальной, т.е. устанавливает число ссылок на нее (refcnt) в 1. Таким образом, на нее ссылается только один объект
UpperCase AnsiString fastcall UpperCase() const Возвращает строку, в которой все символы приведены к верх­нему регистру. Не влияет на исходную строку
WideChar wchar_t* _ fastcall WideChar(wchar_t* dest, int destSize) const Преобразует строку в массив символов dest типа wchar_t и возвращает указатель на этот массив
WideCharBuf Size int _ fastcall WideCharBufSize() const Возвращает размер буфера, требуемого для функции WideChar

Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал