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
[47085] Re:Re:도와주세요!(TEdit에 입력 받은 값 나눠서 사용하기 ) - 샘플
장성호 [nasilso] 1225 읽음    2006-11-15 10:29
크레브 님의 말씀대로
첫번째는  TStringList 의  Delimiter  를 이용한 샘플이구요

두번째는 직접 파싱루틴을 간단히 만드었습니다.


폼에는 TEdit* Edit1 과  TMemo* Memo1
그리고 TButton * Button1,Button2 가 올려져 있습니다.

Edit 에 있는 내용을  스페이스를 기준으로 짤라서
메모장에 한 라인씩 넣었습니다.


//방법1
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Memo1->Lines->Clear();
    Memo1->Lines->Delimiter=' ';
    Memo1->Lines->DelimitedText=Edit1->Text;
}
//---------------------------------------------------------------------------

//방법2
void __fastcall TForm1::Button2Click(TObject *Sender)
{

    Edit1->Text;
    String str="";
    Memo1->Lines->Clear();
    int ilen=Edit1->Text.Length();
    for(int i=1;i<=ilen;i++)
    {
        if(Edit1->Text[i]==' ')
        {
            if(str.Length())
            {
                Memo1->Lines->Add(str);
                str="";
            }
            continue;
        }
        str=str+Edit1->Text[i];
    }
    if(str.Length())
    {
        Memo1->Lines->Add(str);
    }
}
//---------------------------------------------------------------------------


크레브 님이 쓰신 글 :
: string에서 스페이스로 나눠진 문자 잘라내는것은
: 해결책이 너무 많아서 문제 아닙니까?
:
: 그냥 Edit->Text.c_str()으로 문자열 포인터 얻어와서
: 직접 for루프 돌리면서 파싱 루틴 만들어도 간단하고
:
: strtok 사용해서 파싱해도되고
:
: TStringList에서 Delimiter 프로퍼티를 " " 스페이스로 설정하고
: list ->DelimitedText = Edit->Text;
: 이거 넣어준후 StringList의 각각의  Strings[] 가지고 정수로 바꿔도 됩니다.
:
:        
:
:
: comsky 님이 쓰신 글 :
: : 포럼 검색도 해보고 메뉴얼도 찾아보고 했는데
: : 해결책을 찾지 못해 이렇게 질문드립니다.
: :
: : 예를 들어
: : TEdit에
: : 0 1 4 8(값 사이는 스페이스로 한칸씩 띄웁니다.)
: : 이런식으로 값을 입력받으면 각각의 값을 따로 뽑아내서
: : 사용할 수 있는 방법이 있나요?
: :
: : 제가 이 방법을 적용하려는 루틴은 아래와 같은데
: : num_proc의 수 만큼 proc란 구조체를 생성하면서
: : proc의 멤버인 arrTime, burstTime, remainTime을
: : TEdit에 위와 같은 형식으로 입력받은 값으로 초기화
: : 시켜주려고 합니다.
: :
: : for (i = 0; i < num_proc; i++) {
: :           proc = new PROCESS[num_proc];
: :           proc[i].processNum = i + 1; //process number 부여
: :
: :           TEd_Arrival->SelStart = i;
: :           TEd_Arrival->SelLength = 1;
: :           TEd_Arrival->AutoSelect = true;
: :           TEd_Burst->SelStart = i;
: :           TEd_Burst->SelLength = 1;
: :           TEd_Burst->AutoSelect = true;
: :
: :           proc[i].arrTime = TEd_Arrival->SelText.ToInt();
: :           proc[i].burstTime = TEd_Burst->SelText.ToInt();
: :           proc[i].remainTime = TEd_Burst->SelText.ToInt();
: : }

+ -

관련 글 리스트
47074 도와주세요!(TEdit에 입력 받은 값 나눠서 사용하기) comsky 930 2006/11/14
47081     Re:도와주세요!(TEdit에 입력 받은 값 나눠서 사용하기) 크레브 1147 2006/11/15
47085         Re:Re:도와주세요!(TEdit에 입력 받은 값 나눠서 사용하기 ) - 샘플 장성호 1225 2006/11/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.