저장/다른이름으로저장/찾기/찾아바꾸기 의 기능들은 텍스트를 담고 있는 버퍼의 자료구조에 따라 구현이 틀려집니다.
대부분의 텍스트 에디터는 이들 버퍼의 구조가 조금씩 틀립니다.
차라리 파일처리 라던지..그런 라이브러를 찾으신다면 모를까..
텍스트 에디터 공개 소스는 쉽게 구하실수 있겠지만, 질문하신 그런 라이브러리는 구하기 힘드실듯하고요.
만약 원하시는 에디터가 파일내용을 그대로 담고 있는 간단한 구조의 텍스트 에디터라면, 얘기하신 기능은 찾기 기능빼고 굉장히 단순합니다. 라이브러리라고 따로 할만한게 없네요.
찾기기능의 경우...성능문제가 아니라면 strstr 같은 C 라이브러리를 사용하거나 c++ 의 stl 도 꽤 빠릅니다. 성능을 고려해야하면 z-알고리즘같은 스트링 매칭 알고리즘을 알아보시면되겠네요.
공통적이기 힘든 부분이네요..
저장/다른이름으로저장/찾기/찾아바꾸기 의 기능들은 텍스트를 담고 있는 버퍼의 자료구조에 따라 구현이 틀려집니다.
대부분의 텍스트 에디터는 이들 버퍼의 구조가 조금씩 틀립니다.
차라리 파일처리 라던지..그런 라이브러를 찾으신다면 모를까..
텍스트 에디터 공개 소스는 쉽게 구하실수 있겠지만, 질문하신 그런 라이브러리는 구하기 힘드실듯하고요.
만약 원하시는 에디터가 파일내용을 그대로 담고 있는 간단한 구조의 텍스트 에디터라면, 얘기하신 기능은 찾기 기능빼고 굉장히 단순합니다. 라이브러리라고 따로 할만한게 없네요.
찾기기능의 경우...성능문제가 아니라면 strstr 같은 C 라이브러리를 사용하거나 c++ 의 stl 도 꽤 빠릅니다. 성능을 고려해야하면 z-알고리즘같은 스트링 매칭 알고리즘을 알아보시면되겠네요.
scintilla
http://www.scintilla.org/
라는 프로젝트가 있습니다. NotePad++에서 이 컴퍼넌트를 사용하고 있습니다.
텍스트 에디터는 물론 Win32 또는 GTK+와 연동하여 GUI 에디터도 만들 수 있습니다.
댓글 달기