Добавил:
sergey123
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ООП / Labs / ооп 2 лаба / 1 / Unit1
.cpp//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// n=Memo1->Lines->Count;
}
int n=0;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1 -> Lines -> LoadFromFile ("I:\\u111052\\mp.txt");
//n=Memo1->Lines->Count;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
n=Memo1->Lines->Count;
if ((ComboBox1->ItemIndex!=1)&&(ComboBox1->ItemIndex!=0)&&(ComboBox2->ItemIndex!=1)&&(ComboBox2->ItemIndex!=0))
{
ShowMessage("Проблема");
}
else
{
if (ComboBox1->ItemIndex==0)
{
if (ComboBox2->ItemIndex==0)
{
int posT=Memo1->Lines->Strings[0].Pos("-");
for (int j=0; j < (n-1); j++)
{
for (int i=0; i < (n-1); i++) {
String tmp1,tmp2;
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))==StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1)))
{
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+2,1))>StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+2,1)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))>StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
}
}
else {
int posT=Memo1->Lines->Strings[0].Pos("-"); //poziciya "-"
for (int j=0; j < (n-1); j++)
{
for (int i=0; i < (n-1); i++) {
String tmp1,tmp2;
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))==StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1)))
{
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+2,1))<StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+2,1)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))<StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1))) {
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
}
}
}
else
{
if (ComboBox2->ItemIndex==0) {
int posT=Memo1->Lines->Strings[0].Pos("-"); //poziciya "-"
for (int j=0; j < (n-1); j++)
{
for (int i=0; i < (n-1); i++) {
String tmp1,tmp2;
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))==StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1)))
{
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+2,1))>StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+2,1)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
if ((StrToInt(Memo1->Lines->Strings[i].SubString(posT+2,1))==StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+2,1)))&&(Memo1->Lines->Strings[i].SubString(posT+4,100))>(Memo1->Lines->Strings[i+1].SubString(posT+4,100)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))>StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
}
}
else
{ int posT=Memo1->Lines->Strings[0].Pos("-"); //poziciya "-"
for (int j=0; j < (n-1); j++)
{
for (int i=0; i < (n-1); i++) {
String tmp1,tmp2;
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))==StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1)))
{
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+2,1))<StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+2,1)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
if ((StrToInt(Memo1->Lines->Strings[i].SubString(posT+2,1))==StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+2,1)))&&(Memo1->Lines->Strings[i].SubString(posT+4,100))<(Memo1->Lines->Strings[i+1].SubString(posT+4,100)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
if (StrToInt(Memo1->Lines->Strings[i].SubString(posT+1,1))<StrToInt(Memo1->Lines->Strings[i+1].SubString(posT+1,1)))
{
tmp1=Memo1->Lines->Strings[i];
Memo1->Lines->Strings[i]=Memo1->Lines->Strings[i+1];
Memo1->Lines->Strings[i+1]=tmp1;
}
}
}
}}}}