안녕하세요.
CSV 파일의 데이터를 구분 할 때 TStringList 를 사용했더니 공백도 구분자로 사용되어
공백을 무시하기 위해서는 "값" 과 같이 더블코테이션으로 값이 둘러싸여 있어야만 컴마로 구분되더군요.
제가 처리해야 하는 값은 컴마로만 구분해야 했기 때문에 TStringList 를 사용할 수 없었습니다.
그래서 자료를 찾아보니 다음과 같은 소스가 있어서 올려 봅니다.
원문 사이트: http://delphicikk.atw.hu/listaz.php?id=2099&oldal=35
다음과 같은 예제를 만들어 보았습니다...소스와 실행파일을 올렸습니다.
다운로드:
TCommaStrings.rar
![](https://t1.daumcdn.net/cafefile/pds93/1_cafe_2008_11_07_11_47_4913ac24818fd)
즐거운 하루 되세요...
첫댓글 앗! 좋은 자료 감사합니다^*^
TStringList 에는 DelimitedText 와 Delimiter라는 프로퍼티가 있습니다. Delimiter 프로퍼티에 델리미터를 넣으면 정해진 문자를 구분자로 사용할 수도 있습니다^*^ 참고 하세요 ~~
일레븐(원이아빠)님 TStringList.Delimiter := ','; 와 TStringList.DelimitedText := ','; 를 각각 TStringList.CommaText := Memo1.Text; 처리 전에 컴마를 지정해 넣었는데 효과가 없어서 팁을 찾아보았던 것입니다...제가 DelimitedText 와 Delimiter 에 지정하는 방법이 잘못된 것일까요?...알려주세요...
TStringList.DelimitedText 에 Memo1.Text를 넣어야 합니다. ^*^ 그리고 List[i] 를 참조하면 분리된 데이터를 조회할 수 있습니다
일레븐님...알려주신 부분에 대하여 이렇게 저렇게 나름대로 테스트를 해보았습니다...그 결과 기본적으로 공백과 컴마로 구분시킬 때는 TStringList.CommaText 에 문자열을 대입하고...특정 문자와 공백으로 구분 할 때는 TStringList.Delimiter 에 특정 문자를 지정하고 TStringList.DelimitedText 에 구분하기 위한 문자열을 대입하는 것으로 생각 됩니다...그래서 공백은 디폴트로 포함되어 있는 듯 합니다...바쁘시겠지만 한번 체크해 주시면 감사하겠습니다.
아! 그게 그렇게 동작하고 있었군요.. 늘 쓰는대로만 쓰다보니 그렇게 되는줄 몰랐습니다. 공백이 디폴트로 들어가는게 맞군요^*^ 감사합니다.
일레븐님 덕분에 TStringList.CommaText 에 대해서 깊이 있게 알게 되어 기쁩니다...감사합니다...^.^
Delphi7 이후 버젼에서는 TStringList가 수정된 부분이 있습니다. 정확이 어떤버젼부터인지 모르겠으나(2005부터인지..) TStringList 에 StrictDelimiter 라는 프로퍼티가 추가되었습니다. StrictDelimiter:=true 로 해주면 Delimiter 를 기준으로만 짜릅니다. 중간에 공백문자(space)가 있어도 무시됩니다. 참고하세요 그럼..
장성호님 좋은 정보 감사합니다...제가 올린 소스는 Delphi7 이하 버전에서 필요하겠네요...^.^