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


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

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



стр. 8
       Функция запрашивает две переменные типа AnsiString и сравнивает их. Сравнение выполняется без учета регистрозависимости.  Если строки одинаковые, то результат будет true (эквивалентно целому 1). В противном, сравнение вернет false (0). Вы можете использовать функцию SameText() в диалоге подобным этому:
Тогда вы можете вставить событие OnClick() кнопки OK как показано ниже:
//---------------------------------------------------------------------------
void __fastcall TOKBottomDlg::OKBtnClick(TObject *Sender)
{
       String Password1 = edtPassword1->Text;
       String Password2 = edtPassword2->Text;
       Boolean Result = SameText(Password1, Password2);

       if(Result == False)
       {
              Panel1->Caption = "Your passwords do not match!";
              edtPassword1->SetFocus();
       }
       else
       {
              Panel1->Caption = "Your account has been setup.";
              Close();
       }
}
//---------------------------------------------------------------------------
       Метод AnsiString::AnsiCompareIC() выполняет сравнение двух строк согласно региональным установкам. Подобно SameText(), эта функция не чувствительна к регистру.
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
       AnsiString String1 = Edit1->Text;
       AnsiString String2 = Edit2->Text;

       if(String1.AnsiCompareIC(String2) < 0)
              Edit3->Text = "True";
       else if(String1.AnsiCompareIC(String2) > 0)
              Edit3->Text = "False";
       else
              Edit3->Text = "Equal";
}
//---------------------------------------------------------------------------
Как альтернативу, можно использовать функцию CompareText() для сравнения строк. Подобно методу  AnsiString::AnsiCompareIC(), эта функция не зависит от региональных настроек. Синтаксис функции:

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

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

Сравнение строк с регистрозависимостью

Метод AnsiString::AnsiCompare() используется для сравнения двух строк учитывая регистр. Эта функция, при выполнении, использует региональные настройки компьютера.  Пример:
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
       AnsiString String1 = Edit1->Text;
       AnsiString String2 = Edit2->Text;

       if(String1.AnsiCompare(String2) < 0)
              Edit3->Text = "True";
       else if(String1.AnsiCompare(String2) > 0)
              Edit3->Text = "False";
       else
              Edit3->Text = "Equal";
}

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
или выше.