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

C++빌더 Q&A
C++Builder Programming Q&A
[4337] Re:[질문] Paradox 테이블의 Formatted Memo 필드 검색하는 방법을 알려 주세요.
박지훈.임프 [cbuilder] 3278 읽음    2000-10-25 00:00
이의태 님이 쓰신 글 :
: 안녕하세요. 씨빌더로 데이터베이스 프로그램을 짜고 있습니다.
:
: 파라독스 테이블을 사용하고 있고, Formatted Memo 필드(RichEdit형식)를 하나 만들어 자료를 저장하고 있습니다.
: Formatted Memo 필드에 넣는 text는 글꼴이름과 크기, 색상 등을 지정하여 가독성을 높일 수 있기 때문에 일반 Memo 필드를 사용하지 않고 Formatted Memo 필드를 사용하고 있습니다.
:
: 그런데, 이 글꼴 형식을 지정하여 저장한 Formatted Memo 필드의 내용을 검색하면 검색이 되지 않습니다.
:
: 다음과 같이 검색하면 찾는 단어가 분명히 있는데도 검색하지 못합니다. 그러나 글꼴 형식을 전혀 지정하지 않고 입력한 메모 필드는 검색해주더군요.
:
: if (Table1->FieldByName("Fmemo")->AsString.Pos("찾는낱말"))
:    ShowMessage("찾았습니다.");
: else
:    ShowMessage("없는데요.");
:
: 여기에서 Fmemo 필드는 Formatted Memo 형식의 필드입니다. 이 필드에서 순수한 텍스트만 뽑아내서 검색해 주는 방법은 없을까요?
:
: 고수님들의 답변을 부탁드립니다.
:
: 감사합니다.
:



임펠리테리입니다.

파라독스의 Formatted Memo타입의 필드에 저장되는 형식은 리치에디트의 내부 데이터와 같은 rtf 형식입니다. rtf 포맷에는 포맷(폰트 설정 등)을 지정하는 제어문자들이 포함되어 있으므로 당연히 텍스트 검색이 안되죠.

만약 이 필드가 디비리치에디트 컨트롤에 연결되어있다면 디비리치에디트의 Lines->Text.Pos(...) 이렇게 해서 검색할 수 있습니다. 만약 작성하시는 어플리케이션이 이 필드에 디비리치에디트를 사용하지 않는 경우라면 포맷 제어문자를 제외한 실제 텍스트만 알아낼 방법이 없으므로 직접적으로는 불가능합니다. 약간 편법을 쓴다면, 아예 메모필드를 하나 더 만들어서 Formatted Memo 필드에 값이 저장될 때마다 그 텍스트내용을 메모필드에 넣어줬다가 검색할 때는 메모필드를 대상으로 검색할 수 있겠네요.

그럼 참고하시길...

+ -

관련 글 리스트
4335 [질문] Paradox 테이블의 Formatted Memo 필드 검색하는 방법을 알려 주세요. 이의태 3171 2000/10/25
4337     Re:[질문] Paradox 테이블의 Formatted Memo 필드 검색하는 방법을 알려 주세요. 박지훈.임프 3278 2000/10/25
4339         답변 감사합니다. 그 방법 밖에는 없군요. 이의태 3364 2000/10/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.