Oper01 |
Отправлено: 15.08.2004, 01:03 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 145
|
Как наиболее просто сравнить два TStrings ? Результатом должно быть "одинаковые" и "не одинаковые". |
|
Георгий |
Отправлено: 15.08.2004, 10:12 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
можно использовать метод EqualsCODE | void Fill1(TStrings *s)
{
s->Clear();
for(int i=0;i<10;++i)s->Add(i);
};
void Fill2(TStrings *s)
{
s->Clear();
for(int i=10;i<20;++i)s->Add(i);
};
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
TStrings * ptrStrings[2];
for(i=0;i<2;++i)ptrStrings[i]=new TStringList;
Fill1( ptrStrings[0] );
Fill2( ptrStrings[1] );
const bool notEqu = ptrStrings[0]->Equals( ptrStrings[1] );
Fill2( ptrStrings[0] );
const bool Equ = ptrStrings[0]->Equals( ptrStrings[1] );
const bool succesful = ((!notEqu) && Equ);
const AnsiString message = AnsiString("method ") + AnsiString(succesful?"ok":"fauled");
Application->MessageBox(message.c_str(), "test complete", MB_OK ); | |
|
** Oper01 |
Отправлено: 16.08.2004, 10:00 |
|
Не зарегистрирован
|
Спасибо, всё работает как часы ! |
|
** Oper01 |
Отправлено: 16.08.2004, 10:00 |
|
Не зарегистрирован
|
Спасибо, всё работает как часы ! |
|
Guest |
Отправлено: 16.08.2004, 10:17 |
|
Не зарегистрирован
|
А не проще ли вот так ?
CODE |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString s1 = ListBox1->Items->Text;
AnsiString s2 = ListBox2->Items->Text;
if(s1 == s2) ShowMessage("Ok"); else ShowMessage("No Ok");
}
//---------------------------------------------------------------------------
| |
|
Георгий |
Отправлено: 16.08.2004, 19:28 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
хм..
а по моему вот так ещё проще:CODE | void __fastcall TForm1::Button1Click(TObject *Sender)
{
if( ListBox1->Items->Equals(ListBox2->Items) ) ShowMessage("Ok"); else ShowMessage("No Ok");
} | а тот код, что я выше привёл был всего лишь простеньким тестом корректности работы метода Equals. даже не тестом, а демонстрацией его работоспособности..
|
|