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
[11247] AnsiString 소스 다시질문.. 그리고 제안
패패루 [peperu] 1109 읽음    2001-09-19 14:54
C++Builder의 Source디렉토리에 들어가 보니 모든 소스가 다 있는건 확인했습니다.
문제는 대부분 파스칼이라는 점...

전에 한번 AnsiString소스를 구할 수 없냐는 질문을 한 뒤에 소스가 다 들어있다고
답변이 게시되서 직접 다시 살펴보니 dstring.cpp에 함수 본체가 다 되어있긴 한데..
문제는 연산자 오버로딩은 직접 어셈블리로 구현되어 있지만, 다른 멤버함수들은
sysutils의 모듈을 쓰는데 이게 다 파스칼이죠..
꼭 파스칼이라서 안된다는건 없지만, 항상 프로그램을 짜다보면 기초클래스들은
VCL을 이용하지 않고 네이티브 C++로 구성하는 경우가 많은데 이때 가장 맘에 걸리
는게 AnsiString, TDateTime인 것 같습니다. 물론 TStringList도 비교적 빈번히
사용되긴 하지만서두.. ^^

그래서 여러분의 의견을 듣고 싶습니다.
(Suggestion란에 쓰고 싶었는데, 권한이 없다구 나오는군요.)

AnsiString, TDateTime 등 몇가지 기본 Class를 pascal이 아닌 C++로 새로 작성하는
프로젝트에 대해 어떻게 생각하시는지요..
VCL을 인클루드하면 이 새로운 모듈은 자동으로 컴파일에서 제외되고... VCL을 포함
하지 않았을때는 자동으로 인클루드되서 컴파일 되는 구조로 만들어진다면 빌더의
훌륭한 AnsiString 클래스를 일반 Linux프로그래밍에도 적용할 수 있으니까 괜찮을
것 같은데요. 전 항상 기초 클래스 구성할때 AnsiString을 쓰면서도 뭔가 찜찜한
기분을 지울 수가 없습니다...

특히 TDateTime은 양음력이 지원되지 않기 때문에('단기'는 지원하더군요) 이를 지원
하도록 구성하는 것도 괜찮을것 같구요.. 멀티플렛폼 네이티브 C++로만 구성..

이들 클래스들은 아시다시피 프라퍼티가 없습니다. 따라서 완벽하게 네이티브 C++
로만 구성할 수 있다고 확신합니다.

제가 개인적으로 플랫폼 프리(VC에서도 쓸 수 있는)로 동작하는 양음력 변환 프로그램
을 짜 둔 것이 있고(양음력 테이블을 비트단위로 처리해서 빠르고 메모리 낭비도 적
습니다. 1800~2041년까지), TDateTime의 FormatString()함수를 보다 확장해서 음력
날짜, 윤달표시, 천간지지(갑을년 을축월... 한자까지 지원)등을 표현할 수 있는 모
듈도 만들어 둔 것이 있느니까.. 이를 좀 더 최적화하고 수정하면 좋은 라이브러리가
될 것 같거든요..
EX) 음력지원 FormatString
오늘 날짜를 '2001년1월13일 (음력 2001.윤2.27)'과 같은 형식으로 표시하려면
TDateTime dtNow = Now();
ShowMessage(dtNow.FormatString(
            LunDateFormat(dtNow, "yyyy'년'm'월'd'일 (음력 'ryyyy'.'ruuurm'.'rd)")
           ));
이렇게 쓰면 되는 식입니다. 지금 만들어 놓은것은..

파스칼 소스를 살펴보니 속도를 요구하는 부분은 모두 어셈블리로 되어 있더군요..
이 파스칼 소스를 C++로 전환하고 적절히 정리하면 될 것 같은데..

여러분의 의견들 부탁드립니다.

+ -

관련 글 리스트
11247 AnsiString 소스 다시질문.. 그리고 제안 패패루 1109 2001/09/19
11268     Re:AnsiString 소스 다시질문.. 그리고 제안 최보현.U&I 1100 2001/09/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.