|
패패루 님이 쓰신 글 :
: 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++로 전환하고 적절히 정리하면 될 것 같은데..
:
: 여러분의 의견들 부탁드립니다.
:
유엔아이 입니다.
저번에도 님의 글은 읽어 보았지만 ....
글쎄요~ 다 좋은 이야기 이긴 하지만 ... 그게 꼭 필요 할까요~
어짜피 요즘 각벤더에서 제공을 하는 스트링 크래스가 있는 상태구 ...
또, 만약 ... 제가 만든다면은 GCC 상에서 만들겠지요~
단순히 스트링만의 문제는 아니라고 보거든요
어짜피 플렛폼 독립적인 소스를 만드는게 목적이라면 ...
빌더나 비절씨 ... 모두 ... 그렇게 메르티가 있는 컴파일러는 아니지요~
어짜피 플랫폼 독립 적인 프로그램을 짜야 한다면 ... GCC 에서 짜는게 가장
효율적이겠저
제생각은 그렇네요~
스트링작업을 많이 하지 않기 때문에~~ 헉~~ 지송~
저 같은 경우는 구냥 맨날 직접 구현해서 쓴답니다 ... ㅋㅋㅋ
손이 남아서리~~ 허허~~
그럼 쓸때없는 주접이었습니다.
|