문자열을 ',' 구분자를 이용하여 분리하려고 합니다.
제가 작성한 소스입니다.
var
TempList : TStringList;
LCnt : Integer;
begin
Result := False;
TempList := TStringList.Create;
for LCnt := 0 to StrList1.Count - 1 do
begin
TempList.Clear;
ExtractStrings( [','], [], PAnsiChar(StrList1.Strings[LCnt]), TempList );
ShowMessage(TempList[0] + ' : ' + TempList[1]);
end;
TempList.Free;
end;
데이터 1 : AA 1,BB 1
데이터 2 : AA 2,BB 2
데이터 3 : AA 3,
데이터 4 : AA 4,
데이터 5 : AA 5,BB 5
결과 : 데이터 1, 2는 제대로 분리가 되는데,
데이터 3에서 두번째 인덱스가 null이라서
TempList[1]에서 인덱스 오류가 발생합니다.
null값을 제어할 방법이 없을까요?
다른 방법으로
// TempList.Delimiter := ',';
// TempList.DelimitedText := StrList1.Strings[LCnt];
// 또는
// TempList.CommaText := StrList1.Strings[LCnt];
이것을 사용하면, 데이터 중간에 공백이 있으면, 공백 이후는 무시가 됩니다.