Copyright © 2010 Promsite. All Rights Reserved.
стр. 9


Работа со строками AnsiString

                                                                                         перевод Виктор Алексеев aka prom



стр. 9
       Помимо всего, метод AnsiString::AnsiCompare() может использовать функцию AnsiCompareStr() для сравнения строк. Подобно методу AnsiString::AnsiCompare(), эта функция учитывает региональные настройки. Синтаксис функции:
       int __fastcall AnsiCompare(const AnsiString& OtherString) const;

       Эта функция сравнивает назначенную строку со строкой в аргументе. Функция возвращает:
Отрицательное значение, если ваша строка меньше строки в аргументах;
Позитивное значение, если ваша строка больше строки в аргументах;
0 если обе строки равны.

       Для сравнения строк, вы также можете использовать функцию CompareStr(). В противоположность методу AnsiString::AnsiCompare(), эта функция не зависит от региональных настроек. Синтаксис функции:

       int __fastcall CompareStr(const AnsiString First, const AnsiString Second);

       Функция получает две строки как аргументы и проверяет их посимвольно. После сравнения функция возвращает:
Отрицательное значение, если первая строка меньше второй;
Позитивное значение, если первая строка больше второй;
0 если обе строки равны.

Сравнение строк булево

Класс AnsiString и библиотека системных утилит определяет технику сравнения строк. Функции применяемые для выполнения сравнения возвращают целочисленное значение. Иногда, при выполнении специфических алгоритмов, таких как сравнение паролей, выполнение математических вычислений, выполнение проверки в текстовых документах и др., нам нужно знать только то, что строки равны. Этот тип сравнения возвращает булевы true или false. Обе библиотеки могут выполнять различные виды сравнения.
Когда у нас есть две строки  и мы хотим убедиться в их равенстве, можно использовать перегруженный оператор  == . Если обе строки равны, то вернется true.
Также можно использовать функцию AnsiSameStr(). Синтаксис функции:
       bool __fastcall AnsiSameStr(const AnsiString First, const AnsiString Second);

Эта функция учитывает региональные установки когда сравнивает первую и вторую строку. Если строки равны возвращается true, иначе false. Пример:
//---------------------------------------------------------------------------
void __fastcall TForm1::btnSendClick(TObject *Sender)
{
       String EMail1 = edtEMail1->Text;
       String EMail2 = edtEMail2->Text;
       if(AnsiSameStr(EMail1, EMail2))
       {
              frmCongratulations->ShowModal();
              Close();
       }
}

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

       Если строка, которую вы хотите сравнить, является заголовком, что вы видите на форме,то создание функции для сравнения было бы громоздким делом. Это происходит потому что обычно заголовок на форме имеет амперсанд с подчеркнутой линией. Следующие примеры включают первое имя, адрес, город и т.д. К счастью, Борланд определила функцию AnsiSameCaption(). Синтаксис функции:
       bool __fastcall AnsiSameCaption(const AnsiString First, const AnsiString Second);

       Эта функция получает два заголовка и сравнивает их, учитывая региональные настройки. В зависимости от того где спозиционирован амперсанд другие символы заголовка будут проверяться. Если оба заголовка равны, функция вернет true. В следующем примере,  в дух  заголовках установлены первые имена. Последовательное их сравнение будет искать их отличия, но функция AnsiSameCaption() обнаружит, что обе строки равны:




P  R  O  M  S  I  T  E
Статьи по С++Builder 6
страницы: 1   2   3   4   5   6   7   8   9   10   11   12
страницы: 1   2   3   4   5   6   7   8   9   10   11   12

Для отображения Облака ссылок
необходим
Adobe Flash Player 9
или выше.