Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15715] Re:Delimiter 추출법
조대현.Clau [casanebula] 2241 읽음    2016-05-31 22:30
단순하게 해결하시려면
->공백을 특수 문자로 치환 후
->DelimitedText로 파싱하시고
->특수 문자를 다시 공백으로 치환하세요.

sData := 'ABC|DEF  GH|JK';

sData := Replace(sData, ' ', Chr(99), [rfReplaceAll]);
slList.Delimiter := '|'; 
slList.DelimitedText := sData ; 

for i := 0 to slList.Count - 1 do
begin
  slList.Strings[i] := Replace(slList.Strings[i], Chr(99), ' ', [rfReplaceAll]);
end;


성낙권 님이 쓰신 글 :
: 도로주소를 디비로 만들려고 하는데 제공하는 데이타가 애매하게 되어 있군요..
:
: 정부에서 제공하는 텍스트 데이타가 아래와 같이 되어 있습니다.
:
: 4311110100|충청북도|청주시 상당구|영동||0|87|4|431113236004|교서로|0|1|0|||4311110100100870004047440|01|4311152500|중앙동|28546||||||알리안츠생명빌딩|0|28546|0||
:
: 특징은 '청주시 상당구'처럼 한필드에 공백이 있고, 영동 다음의 데이타는 없기 때문에 구분자가 연속으로 나옵니다. 즉 || 이렇게
:
: 데이타가 되어 있어서 구분을 할 수 없군요
:
: slList.Delimiter := '|';
: slList.DelimitedText:=Str;
:
: 이럴경우 '청주시 상당구' 처럼 글자가 공백인 경우에는 다르게 구분해버리네요...(..'청주시', '상당구'..)
:
: 델파이7을 사용중이라 StrictDelimiter 프로퍼티는 지원이 안되네요....
:
: 그래서 공백을 없애고자
:
: ExtractStrings(['|'],[],PChar(Str),slList);를 사용하면 데이타가 없는구분자의 공백이 데이타로 들어오지 않네요..
:
: 이때에는 '청주시 상당구','영동','0','874'..처럼 '영동' 다음의 공백은 없어져 버려요..
:
: 이데이타를 제대로 추출할 방법이 없을까요?
:
: 함수를 따로 만들어야 할까요?

+ -

관련 글 리스트
15713 Delimiter 추출법 성낙권 1757 2016/05/31
15715     Re:Delimiter 추출법 조대현.Clau 2241 2016/05/31
15716         Re:Re:Delimiter 추출법 성낙권 2018 2016/06/01
15714     Re:Delimiter 추출법 kylix 1944 2016/05/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.