|
TStringList *sl = new TStringList;
ExtractStrings(TSysCharSet()<<':', TSysCharSet(), "a:b:c:", sl);
이렇게 하시면 됩니다. 짐작하시겠지만 첫번째 인자가 구분자 문자들의 집합입니다.
결과는 스트링리스트의 각 라인으로 분리되어 나옵니다.
그런데 단 한가지의 구분자만을 가지고 있다면, 인자도 복잡하고 짜증나는 4ExtractStrings() 함수보다는
다음의 방법이 좀 더 간편할 겁니다. 이 방법은 구분자가 두자 이상의 문자열이어도 가능하고요.
TStringList *sl = new TStringList;
sl->Text = StringReplace("a:b:c:", ":", "\r\n", TReplaceFlags()<<rfReplaceAll);
(만약 구분자가 영문자라면, 대소문자 구분 여부에 따라 마지막 인자에 추가로 rfIgnoreCase를 넣을 수 있습니다.)
그럼...
초록물고기 님이 쓰신 글 :
: 안녕세요.
: AnsiString a = "a:b:c:" ;
: 처럼 되어 있을때,,, a, b,c 를 각각 잘라 내서 특정 변수에 저장하려고 하는데......
: 어떻게 하는지 모르겠습니다.
:
: 델파이에서는 ExtractStrings[ [';'] , [] , pChar ( ) , TStrings);처럼 하는데...
:
: ExtractStrings 을 어떻게 써야 하는지... 도움말을 봐도 잘 모르겠습니다.
: typedef Set<char, 0, 255> TSysCharSet ==> 이런 데이타 타입은 어떻게 써야 하는건지요?
:
: TSysCharSet a;
: ExtractStrings ( a << ":" , b<<" " ,...);
: 어떻게 잘라 ... 어떻게 저장 되늕요?
:
: 고맘습니다.
:
|