C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[60773] Re:Re:AnsiString 변수의 배열문의합니다.
정원철 [wiss] 1700 읽음    2010-04-13 15:00
답변 감사합니다...^-^
설명하신대로 하였더니 잘됩니다..

AnsiString sCon[10];

void __fastcall GetCombo(TComboBox *Combo)
{
	int nPos1;
	int nPos2;
	String sFname="Report.txt";
	TStringList *sLst;
	sLst= new TStringList;
	sLst->LoadFromFile(sFname);
	AnsiString sTitle[10];
	//sLst->Sorted=true;
	//sLst->Duplicates=dupIgnore;  // 정렬하면서 중복되는 데이타 삭제

	Combo->Items->Clear();
	for ( int i=0 ; iCount ; i++)
	{
		AnsiString temp = sLst->Strings[i];
		if(temp>0)
		{
			nPos1 = temp.Pos("[");  //[위치를 찾음
			nPos2 = temp.Pos("]");
			sTitle[i] = temp.SubString(nPos1+1,nPos2-nPos1-1);
			sCon[i] = temp.SubString(nPos2+1,temp.Length()-nPos2);
		}
		Combo->Items->Add(sTitle[i]);
	}
	delete sLst;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
	GetCombo(ComboBox1);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ComboBox1Select(TObject *Sender)
{
	int idx=ComboBox1->ItemIndex;
	Edit1->Text = sCon[idx];
}
//---------------------------------------------------------------------------


C++ Builder  재미를 하나하나 늘여갑니다.. ㅎㅎ

송신영 님이 쓰신 글 :
: 뭐가 잘 안된다는 것지 잘 모르겠네요
: 질문 내용이 좀 부족합니다.
:
: 일단 ComboBox에 구분항목을 다 넣으려면
: for 구문 에서 ComboBox1->Items->Add() 해서 하나씩 다 넣어줘야됩니다.
: ComboBox 선택 이밴트에서 선택된 인덱스 구해서 항목내용이 들어있는
: 배열의 값을 Edit 에 출력하면 됩니다.
:
:  temp.SubString(nPos1+1,nPos2-2);  이 부분도 만약 '[' 문자가 시작되는 위치가
: 첫번째가 아니고 앞쪽에 공백이 있다면 잘못된 방식입니다.
: nPos2 - nPos1 방식의 값을 사용해야합니다. SubString()의 두번째 파라미터는 위치값이 아니라
: 스트링 길이입니다.
:
:
:
: 정원철 님이 쓰신 글 :
: : [첫번째]어쩌구 저쩌구 ....처음이다.
: : [두번째]또 어쩌구 저쩌구   두번째네.
: : [세번째]세번째 선택됬네..
: : ... ...
: :
: : 위와 같은 형식으로 작성된 텍스트 문서파일 읽어서
: :
: : 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;
: : }

+ -

관련 글 리스트
60762 AnsiString 변수의 배열문의합니다. 정원철 1148 2010/04/12
60771     Re:AnsiString 변수의 배열문의합니다. 박영목.월천 1380 2010/04/13
60767     Re:AnsiString 변수의 배열문의합니다. 송신영 1319 2010/04/13
60773         Re:Re:AnsiString 변수의 배열문의합니다. 정원철 1700 2010/04/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.