2010-06-17 3 views
6

일부 문자로 구분되는 간단한 문자열이 있습니다. 쉼표를 사용하겠습니다. 나는 TStringList를 생성하고 콤마로 구분자를 설정 한 다음, 파싱 할 텍스트에 DelimitedText를 설정하면 자동으로 구문 분석되어야합니다.TStringList에 구분 기호를 사용하여 문자열을 파싱하는 것은 공백으로도 해석됩니다 (Delphi)

문제는 출력 결과를 볼 때 구분 기호로 공백이 포함되어 결과가 잘리는 경우입니다. 어떻게 이것을 피할 수 있을까요, 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?

답변

22

TStringList에 StrictDelimiter 속성이 있습니다. True로 설정하면 공백이 아닌 구분 기호 만 구문 분석됩니다.

+10

참고 :이 기능은 Delphi 2005 (또는 2006)에서만 사용할 수 있습니다. 이전 버전을 사용하는 경우 "StrictDelimitedText"속성을 사용하여 TStringList의 고유 한 하위 클래스를 만들 수 있습니다. 불행히도 SetDelimitedText는 비공개이고 가상이 아닙니다 (최소한 D7에서). 따라서 무시할 수 없습니다. –

5

이는 TStrings.DelimitedText 속성의 표준적이고 문서화 된 동작입니다. StrictDelimiter 속성을 true으로 설정하여 해당 동작을 사용하지 않도록 설정하려고합니다.

+4

메이슨이 당신을 이길 ;-) –

+3

아마도 Rob가 더 좋은 포맷을 지불했습니다. :) – jpfollenius

4

d7을 사용하는 경우 "ExtractStrings"기능을 사용할 수 있습니다.

관련 문제