텍스트 에디터를 만들려고 합니다.
글쓴이: choim / 작성시간: 토, 2006/05/27 - 12:08오전
텍스트 에디터를 만들려고 합니다.
실은 과제입니다만, 어디서부터 시작해야 할지 막막한 관계로 고수님들의 조언을 구하고자 합니다.
지금단계에서 고민하는 부분은, 텍스트를 메모리상에 어떻게 올려야 할지
강사분은 링크드 리스트를 이용하라고 말씀하셨습니다만, 링크드 리스트로 메모리상에 올린다고 하면, 단어단위로 노드를 만들어 올려야 할지, 문자단위로 올려야 할지...
단어단위로 한다고 하면, 아마도 띄어쓰기가 없는 문자같은것은, 노드에 지정된 배열범위를 벋어나 버릴테니 생각하기 힘들거 같은데요...
그렇다고 문자단위로 노드를 만든다고 하면, C 에서 제공하는 문자열 관련 함수를 쓰기 힘들어질거 같아서 그것도 고민입니다.(아닌가요? 제가 아는게 많지 않아서...)
혹시 참고할만한(이용할만한) 라이브러리나, 자료를 아시는 분은 그것도 좀 부탁드리고 싶습니다.
그럼... 고수님들의 도움을 부탁드리며...
미리 감사의 말을 남깁니다.
Forums:
에디터를 만들 때는
에디터를 만들 때는 줄 단위의 링크드 리스트를 많이 쓰지 않나요?
참고자료
김상형의 Windows API 실전 프로그래밍
텍스트 에디터를 만드는 과정을 보여주는 책이죠.. 윈도우지만..
당근에디터 ㅎㅎ 이름이 당근이죠
김상현님의 당근에디터가 포함되어있어요,
참고로 http://www.soen.kr/project/dangeun/dangeun.htm 에서 소스자료 다운받을수있어요.
GPL이라 다양하게 응용할수도있습니다.
홧팅입니다.
김상형님입니다. ㅎㅎ
"김상형"님의 당근편집기입니다.
저는 자바가 주
저는 자바가 주 언어라 큰 도움이 안되겠지만, 그래도 이것저것 컴포넌트는 만들어 보긴 했습니다.
우선 과제로 만드시는 거고 제 생각에 텍스트 에디터는 그리 단순한게 아니기 때문에 구현할 대상에 대해 충분한 기능이 있는 고수준의 라이브러리를 최대한 활용하시는게 나을거 같습니다.
기본적으로 제공되는 것들은 대부분 어플리케이션을 만들기에는 개발자가 구현하고 신경써야 할 부분이 너무 많으니까요.
강사분께서 링크드리스트를 이용하라고 하셨으니까 우선 그걸 이용해 큰 문자열을 다양하게 처리해주는 오픈소스 라이브러리를 이용하시거나 참조하셔서 개발하는것이 좋을것 같습니다.
아, vi나 emacs의 소스를 보시면 찾을수 있을듯 하네요. nano두 있구요.
결과물의 기능과 과제 기간을 잘 몰라서 제가 추천하는 방법이 맞는지는 모르겠네요.
뭐 과제니까 실제와 같은 결과물을 기대하는게 아니긴 하겠지만 텍스트 에디터는 제가 알고있는 상황에서는 아주 어려운 과제 같네요.
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
요구조건부터 정의하심이...
걍 에디터를 만든다고 하시니,,,
vi도 에디터고 vs도 에디터인데,
기능과 성능의 바운더리가 없네요...
그걸 먼저 정의하심이 좋을듯 하네요...
notepad 수준이라면 링크드 리스트도 필요없을듯 하고,
vi 수준으로 원하신다면, flyweight와 command 패턴말고도 동원해야될 기술이 많을듯...
답변주신 kewlbear님
답변주신 kewlbear님 mike님 dormael님 babynewton님
모두 감사합니다. ^^
예 일단 기존에 만들어진 editor 들의 소스는 살펴보고 있습니다만, 제가 아는 수준에서 유명한 editor 들은 이미 너무 덩치가 커서, 제 수준에선 분석하기가 영 까다롭네요. ^^;
기능이라고 하면, 노트패드보다 좀더 기능이 나은 수준(?) 정도 됩니다.
단 console 기반으로 돌아가야 하구요.
실은 강사님이 리눅스 유저인지는 몰라도, 정의된 내용은 UI 부터 기능키 작동방식(편집모드의 구분) 까지 little vi 라고 봐도 무리는 없겠네요.
일단 답변주신 내용을 가지고 열심히 구글링 해봐야 할것 같습니다. ^^
(flyweight와 command패턴이 문자열 처리와 관련된 기술인가요? 음... 아무튼 참고해서 머리좀 써 보겠습니다. ^^)
그럼 답변주신분모두 다시 한번 감사드립니다. (__
댓글 달기