게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
FASM으로 텍스트 뷰어를 제작중 입니다. 기능 추가 의견 바랍니다.
게시물ID : programmer_7240짧은주소 복사하기
작성자 : 중용자
추천 : 7
조회수 : 1928회
댓글수 : 4개
등록시간 : 2014/12/20 14:02:30
텍스트 파일 소설을 읽을 때 WinBook, 텍스북, SD.텍스뷰, 가림토 등 여러 뷰어들을 써봤으나 여백, 문자 등의 설정 문제, 프로그램 실행 속도 등 항상 2% 부족함을 느껴 왔습니다.
어셈블리 프로그래밍 공부하는 김에 겸사겸사 제게 최적화된 뷰어를 만들다 저처럼 만족할 만한 뷰어를 찾지 못한 분들이 있을 것 같아 이렇게 글을 올립니다.

Viewer.png

위의 그림은 현재까지 개발된 텍스트 뷰어 입니다.
맨위 타이틀 바의 '[1 - 51]'은 '[현재 페이지 - 전체 페이지]'를 나타 냅니다.
줄 간격은 마음대로 변경할 수 있습니다.
흰 공간은 여백으로 옵션에서 전후좌우 여백을 마음대로 변경할 수 있습니다.
완성 후에는 여백 공간도 배경색과 동일한 색깔로 칠할 생각입니다.
입력은 가능하지 않으나 마우스로 문자열을 선택하고 Ctrl+C로 복사할 수 있습니다.
한 화면에 2페이지 보여주기, 스크롤바로 페이지 이동, 아래쪽에 페이지 표시는 구현할 생각입니다.
읽을 수 있는 파일의 크기 제한은 임의적으로 16MB로 정했으나 크기 제한은 없앨 수 있습니다.
단지 책처럼 보기 위한 뷰어에서 10MB 이상의 텍스트 파일을 읽을 이유가 없을 것 같고 크기가 너무 크면 윈도우 크기 조정 또는 파일을 읽을 때 느려지기에 제한을 걸어 두었습니다.

  1. IDR_MENU_MAIN MENU
  2. {
  3.     POPUP "파일(&F)"
  4.     {
  5.         MENUITEM "열기\tCtrl+O", IDM_FILE_OPEN
  6.         MENUITEM "최근 읽은 문서 목록 지우기", IDM_FILE_CLEAR
  7.         MENUITEM SEPARATOR
  8.         MENUITEM "종료\tESC", IDM_FILE_EXIT
  9.     }
  10.     POPUP "이동(&M)"
  11.     {
  12.         MENUITEM "이전 페이지\t<-", IDM_MOVE_PREV
  13.         MENUITEM "다음 페이지\t->", IDM_MOVE_NEXT
  14.         MENUITEM "10페이지 이전\tPage Up", IDM_MOVE_PREV10
  15.         MENUITEM "10페이지 다음\tPage Down", IDM_MOVE_NEXT10
  16.         MENUITEM "첫 페이지\tHome", IDM_MOVE_FIRST
  17.         MENUITEM "마지막 페이지\tEnd", IDM_MOVE_LAST
  18.         MENUITEM SEPARATOR
  19.         MENUITEM "페이지 이동\tCtrl+G", IDM_MOVE_PAGE
  20.         MENUITEM "찾기\tCtrl+F", IDM_MOVE_FIND
  21.     }
  22.     POPUP "즐겨찾기(&A))"
  23.     {
  24.         MENUITEM "즐겨찾기에 추가\tCtrl+D", IDM_BOOKMARK_ADD
  25.     }
  26.     POPUP "설정(&O)"
  27.     {
  28.         MENUITEM "글꼴", IDM_OPTION_FONT
  29.         MENUITEM "문자색", IDM_OPTION_FONT_COLOR
  30.         MENUITEM "배경색", IDM_OPTION_BACKCOLOR
  31.         MENUITEM "줄간격", IDM_OPTION_LINE_MARGIN
  32.         MENUITEM "여백", IDM_OPTION_MARGIN
  33.     }
  34.     POPUP "도움말(&H)"
  35.     {
  36.         MENUITEM "정보\tF1", IDM_HELP_ABOUT
  37.     }
  38. }

뷰어의 메뉴입니다.
위의 메뉴 중 읽은문서, 즐겨찾기를 제외하고는 전 기능이 구현되어 있습니다.

완성이 되면 페이지 이동이 자유롭고 전후좌우, 줄간격, 한화면에 출력되는 2페이지간 간격, 문자, 색 등을 자유롭게 변경할 수 있고 종료시 윈도우 크기와 파일을 기억해 재 실행시 그대로 복원합니다.
전부 뷰어들에 있을만한 기능들인데 이 단순한 기능들이 전부있는 뷰어들이 드물고 있어도 툴바가 크게 자리를 차지하고 있거나 속도가 느리더군요.
트루 타입만 지원해 글꼴 선택에 제한이 있는 경우도 있고 (SD.텍스뷰), 글꼴에 따라 아래가 짤리기도 하고 여백 조절이 안되는 (WinBook) 등 항상 뭔가 부족하더라구요.

현재까지 구현된 것을 컴파일한 파일의 크기는 10KB가 안되며 나머지를 전부 구현해도 15KB가 되지 않을 것 같습니다.
실행속도는 물론 매우 빠릅니다.
물론 DLL 같은 추가 파일의 필요는 전무하고 XP 이상이면 실행됩니다.
저한테 필요한 기능은 이 정도면 충분한 것 같은데 저처럼 기존의 텍스트 뷰어에 만족하지 못하는 분들을 위해 필요한 기능을 더 추가할 생각입니다.
위에 언급된 기능들 외에 추가되길 원하는 기능이 있으면 리플 바랍니다.
텍스트 뷰어가 완성 되면 본격적으로 FASM으로 하는 개발에 대한 강의를 진행할 생각입니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호