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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[1180] TStringList를 이용해 공백있는 항목을 Delimiter로 분리 시키는 꼼수.
김태선 [cppbuilder] 1862 읽음    2016-05-31 14:54
자료에 등장하지 않는 문자를 하나 준비해서 그것으로
임시로 공백문자를 치환해서 변환한뒤,
결과 물에서 다시 원래대로 돌려 공백으로 되돌려 놓으면 되는
나는 꼼수다.

//---------------------------------------------------------------------------
void __fastcall TForm1::Panel1Click(TObject *Sender)
{
    // 공백있는 자료 추출 꼼수

    String text = "1234566788|서울시 서초구 서초동|우리집||0|87|4|431113236004";
    TStringList *list = new TStringList;
    try
    {
        list->Delimiter = '|';
        list->DelimitedText = StringReplace(text, " ", "`", TReplaceFlags() << rfReplaceAll);

        for(int c = 0; c < list->Count; c++)
        {
            list->Strings[c] = StringReplace(list->Strings[c], "`", " ", TReplaceFlags() << rfReplaceAll);
            Memo1->Lines->Add(list->Strings[c]);
        }
    }
    __finally
    {
        delete list;
    }
}
//---------------------------------------------------------------------------
정성훈.해미 [sage5nor]   2016-06-03 10:03 X
굳이 이렇게 안하셔도 됩니다.

TStringList의 속성중에 StrictDelimiter가 있는데 이것을 true로 하면
지정한 구분자(Delimiter)만 사용합니다(공백을 구분자로 사용 하지 않음).

list->Delimiter = '|';
list->StrictDelimiter = true;

이렇게만 해주면 끝납니다.
참고하세요 ^^*
정성훈.해미 [sage5nor]   2016-06-03 10:05 X
아~
StrictDelimiter속성이 없는 구버전에서 사용하는 것이군요
김태선 [cppbuilder]   2016-06-03 16:38 X
맞습니다.
빌더6에는 없는 옵션입니다.
^^

+ -

관련 글 리스트
1180 TStringList를 이용해 공백있는 항목을 Delimiter로 분리 시키는 꼼수. 김태선 1862 2016-05-31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.