질문하신 내용으로 보면 이곳에 계신 분들 다 아실 것 같은 데....
답을 안주실 것 같네요... 코드에 정성이 느껴지지 않습니다. -.-
저의 코딩을 다른 분이 검정 중이라 .... 전화를 기다리는 중에....
실험할 때, 만들 때는 버튼 하나 두고 그곳에서 실행하고 중간값 보고...
그렇게 하시면 디버그 편하실 것인데... 저는 디버그 쓸줄 모릅니다..
아직도 박스 띄워 봅니다... ... -.-
보시고 더 좋은 방법을 지적해 주세요.... ^^
/* "C:\\Report.txt";
[세번째]세번째 선택됬네..
[첫번째]어쩌구 저쩌구 ....처음이다.
[두번째]또 어쩌구 저쩌구 두번째네.
[세번째]세번째 선택됬네..
*/
/* HEADER
class TForm1 : public TForm
{
__published: // IDE-managed Components
TComboBox *ComboBox1;
TEdit *Edit1;
void __fastcall ComboBox1Change(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
TStringList *slstStrMemo;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
__fastcall ~TForm1();
};
*/
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
slstStrMemo = new TStringList();
}
__fastcall TForm1::~TForm1()
{
delete slstStrMemo;
}
//---------------------------------------------------------------------------
//테스트를 위해 이곳에 하지 말고 버튼을 만들어 실험하고 중간값 보고... 한문장씩
//검정하면 쉽게 될 것인데... 프로그램은 제법 잘 하시는 것 같다는 느낌인 데...
void __fastcall TForm1::FormCreate(TObject *Sender)
{
String sFname="C:\\Report.txt";
TStringList *sLst = new TStringList;
sLst->LoadFromFile(sFname) ;
sLst->Sort();
AnsiString temp="";
//중복된 문자열 삭제...
int i=0;
while( i < sLst->Count )
{
if( temp==sLst->Strings[i] )
{
sLst->Delete( i );
}
else
{
temp = sLst->Strings[i];
i++;
}
}
//--------------------------------------------------------------------------
int nPos1, nPos2;
AnsiString str1, str2;
slstStrMemo->Clear();
for(int i=0;i<sLst->Count;i++)
{
temp = sLst->Strings[i];
if( temp != "" )
{
nPos1 = temp.Pos("["); //[위치를 찾음
nPos2 = temp.Pos("]");
if( nPos1 )
{
str1 = temp.SubString( nPos1+1, nPos2-2 );
str2 = temp.SubString( nPos2+1, temp.Length() );
//ShowMessage( str1 + ", " + str2 );
ComboBox1->Items->Add( str1 );
slstStrMemo->Add( str2 );
}
}
}
delete sLst;
if( ComboBox1->Items->Count )
{
ComboBox1->ItemIndex = 0;
ComboBox1Change( ComboBox1 );
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
int n = ComboBox1->ItemIndex;
if( n<0 ) return;
Edit1->Text = slstStrMemo->Strings[n];
}
//---------------------------------------------------------------------------
정원철 님이 쓰신 글 :
: [첫번째]어쩌구 저쩌구 ....처음이다.
: [두번째]또 어쩌구 저쩌구 두번째네.
: [세번째]세번째 선택됬네..
: ... ...
:
: 위와 같은 형식으로 작성된 텍스트 문서파일 읽어서
:
: ComboBox1->Text = 구분항목;
: Edit1->Text = 항목내용;
: 으로 보여지게 할려고 하는데 잘 안돼네요. 코드 좀 봐주세요..
:
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
: int nPos1 = 1;
: int nPos2 = 1;
: AnsiString sTitle[30];
: AnsiString sCon[30];
: String sFname="Report.txt";
: TStringList *sLst = new TStringList;
: sLst->LoadFromFile(sFname) ;
: sLst->Sorted=true;
: sLst->Duplicates=dupIgnore; // 정렬하면서 중복되는 데이타 삭제
: for(int i=0;iCount;i++)
: {
: AnsiString temp = sLst->Strings[i];
: while(temp != "")
: {
: nPos1 = temp.Pos("["); //[위치를 찾음
: nPos2 = temp.Pos("]");
: if(nPos1)
: {
: sTitle[i] = temp.SubString(nPos1+1,nPos2-2);
: sCon[i] = temp.SubString(nPos2+1,temp.Length());
:
: }
: }
: }
: ComboBox1->Text = sTitle[0];
: Edit1->Text = sCon[0];
: delete sLst;
: }