Delimiter 와 DelimitedText는
TStringList 클래스에 내장되어 있습니다.
아자! 님이 쓰신 글 :
: 답변감사합니다.
: 그런데
: StrLst->Delimiter = ',';
: 여기에서 Delimiter 이변수가저는선언이되지않습니다.ㅠㅠ
: DelimitedText 이부분도 마찬가지이구요~
:
:
:
:
:
:
:
:
: 정성훈.해미 님이 쓰신 글 :
: : 간단하게 비어 있는 문자열을 "0"으로 바꾸면 됩니다.
: :
: :
: : TStringList *StrLst = new TStringList();
: :
: : // 구분자를 ','로 설정한다.
: : StrLst->Delimiter = ',';
: : // 설정한 구분자로 나누어서 받을 문자열을 넣는다.
: : StrLst->DelimitedText = buffer;
: :
: : // 구분자가 콤마(',')인 경우 위 2줄 코딩을 빼고 아래처럼 간단하게 1줄 코딩으로 써도 됩니다.
: : // StrLst->CommaText = buffer;
: :
: : // 변환된 문자열 개수만큼 반복하여
: : for(int i=0; iCount; i++)
: : {
: : // 문자열에서 공백을 제거한 것이 ""이면 "0"으로 바꾼다.
: : if(StrLst->Strings[i].Trim() == "") StrLst->Strings[i] = "0";
: : }
: :
: : // 변환된 문자열 리스트를 메모장에 복사한다.
: : Memo1->Text = StrLst->Text;
: :
: : delete StrLst;
: :
: :
: : 아자! 님이 쓰신 글 :
: : : TStringList *nn = new TStringList();
: : :
: : : ExtractStrings(TSysCharSet()<<',', TSysCharSet(), buffer.c_str(), nn)
: : :
: : : for (int i=0; i<nn->Count; i++)
: : : {
: : : Memo1->SelText = nn->Strings[i]+ "\r\n";
: : : }
: : :
: : : 이렇게 해서 문자열을 잘랐습니다.
: : : 하지만 이때 buffer에 들어오는 문자는
: : :
: : : 1. buffer = "&test,1,,,,,,5,,,,5,,6,7"
: : : 2. buffer = "&test,1,111,222,333,444,,5,,,,5,,6,7"
: : : 3. buffer = "&test,2,44,55,,,,5,,,,5,,6,7"
: : :
: : : 이런식으로 다양하게 바뀌어서 들어옵니다.
: : : 그래서 ,로 구분하여 문자를 자르긴 하지만 데이타가 없으면 그냥 0으로 들어가면 되는데..
: : : 즉,
: : : 1번을 자르면 buffer = "&test,1,,,5,,5,,6,7"
: : : test
: : : 1
: : : 0- 데이타 없는 부분
: : : 0- 데이타 없는 부분
: : : 5
: : : 0 - 데이타 없는 부분
: : : 5
: : : 0 - 데이타 없는 부분
: : : 6
: : : 7
: : :
: : : 이렇게 나와야하는데 위와 같이 함수를 쓰면
: : : test
: : : 1
: : : 5
: : : 5
: : : 6
: : : 7
: : : 이렇게 나옵니다.
: : : 이 부분을 처리할 방법아시는분 부탁드립니다.ㅠㅠ