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
[15716] Re:Re:Delimiter 추출법
성낙권 [] 2027 읽음    2016-06-01 05:04
답변 감사합니다.

좋은 방법이 있었네요.

저는 함수를 한개 만들어서 한라인을 읽고 바로 적용되도록 만들었더니, 이상없이 되네요..
  sStart:=1;
  sLength:=Length(S);
  for I:=1 to sLength do
  begin
    if s[I]=Delimiter then
    begin
      if I=sStart then sl.Add('')
      else sl.Add(Copy(S,sStart,I-sStart));
      sStart:=I+1;
    end;
  end;

테스트해보고 좋은 방법을 택해야 겠네요..

조대현.Clau 님이 쓰신 글 :
: 단순하게 해결하시려면
: ->공백을 특수 문자로 치환 후
: ->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 추출법 성낙권 1767 2016/05/31
15715     Re:Delimiter 추출법 조대현.Clau 2253 2016/05/31
15716         Re:Re:Delimiter 추출법 성낙권 2027 2016/06/01
15714     Re:Delimiter 추출법 kylix 1952 2016/05/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.