라이프로그


[VS6.0]CPP을이쁜HTML으로 변환해봐라. Tools

img10.png
선택한 영역을 파일로 저장해보자.
먼저 일단 선태한 영역을 얻어내봅시다.

img1.png

위 그림과 같이 내가 선택한 영역을 얻어오는 VS(Visual Studio 6.0)의 매크로는 다음과
같다.

ActiveDocument.Selection  : 이 현재 선택한 영역을 가르킨다.

img3.png <-- 선택한 영역을 메세지 박스에 표시해 보았다. 간단하네...ㅋㅋ^^

자그러면, 현재 선택한 영역을 임시파일에 저장하자 파일을 저장하는 함수는 뭘까?

음.. Sample Macro 에는 파일을 저장할 만한 예제는 업다. 그러면 CodeProject에 가서 찾아보자.
img2.png
이런것이 나왔다..
음.. 그렇구나... "
Scripting.FileSystemObject" 이 오브젝트를 생성해서 파일을 다루면 되는가 보다.

음..그래서 구글링을 해보았다. "Scripting.FileSystemObject"으로 말이다.


http://www.google.co.kr/search?num=100&hl=ko&newwindow=1&rlz=1T4GGLL_koKR304KR304&q=Scripting.FileSystemObject&btnG=%EA%B2%80%EC%83%89&lr=&aq=f&oq=
음.. 그랬더니, ASP 코드들이 주루룩 나왔다.
ASP 코드가 그렇구나 이놈도 Visual Basic Script 를 사용하고 있었지~!!

그런데, ASP의 VB 코드랑 VS 6.0 Macro의 VB 코드가 조금 틀린 것 같다. 그래서 그냥, 복사/풀칠(Paste)를 하면 실행이 안되는 경우가 있다.

음......Scripting.FileSystemObject에 대해서는 어떤지 한번 실험을 해보자.

음메, http://support.microsoft.com/kb/300982/ko 이곳에 가니께 잘 설명하고 있네.... VBScript 와 JScript를 이용해 파일을 다르는 방법에 대해서 말이다.


음 이제 선택한 영역을 임시파일에 저장해보자.
img4.png

음 잘 저장이 된다.
자 그러면, 저장한 임시파일을 HTML 코드로 변환해보자.
HTML 으로 변환해주는 프로그램을 이용해서 말이다.

이 것도 구글링을 해서 찾아 냈다.
http://www.google.co.kr/search?sourceid=navclient&aq=h2&oq=소스코드&hl=ko&ie=UTF-8&rlz=1T4GGLL_koKR304KR304&q=VC%ec%97%90%ec%84%9c+%ec%86%8c%ec%8a%a4%ec%bd%94%eb%93%9c+HTML%eb%a1%9c+%eb%b3%80%ed%99%98%ed%95%98%ea%b8%b0
ANYWAY :: Source Highlight - c/c++ 을 html 로 변환 하는 방법  - 12월 6일

source-highlight 상당히 강력한 유틸리티이긴한데 콘솔 유틸리티라서 사용 하기가 번거롭고 디폴트 설정으로 변경한 HTML 문서의 .... 이 메뉴를 통해서 현재 VC6 에서 열려진 소스 코드를 직접 HTML로 변경할 수 있습니다. 참고로 라인넘버가 필요없다면 ...
aitch.tistory.com/30 - 40k -

 
http://aitch.tistory.com/30 에 아주 잘 정리해 놓았다. 음.. "source-highlight" 라는 프로그램을 이용해서 C나 CPP을 HTML으로 변환해주는 프로그램을 이용한다.

음..해당 프로그램을 위 웹문서를 보면서 설치하면 된다.
자 그러면 매크로에 source highligt라는 프로그램을 실행시켜보자.(임시로 만든 cpp파일을 넘겨주도록 하자.)

설치경로는 보통 다음 경로에 설치되니...

C:Program FilesGnuWin32 insource-highlight.exe

인자값을 다음과 같이 주면 된다.
-s cpp -f htm --data-dir="C:Program FilesGnuWin32sharesource-highlight" --style-file=user.style --line-number-ref "c:WindowsTempTmp.cpp"</b

자 해보자.
그럼 매크로에서 프로그램을 실행시키는 방법은 어떻게 될까?
이것은 CodeProject에서 찾아보자.

http://www.codeproject.com/KB/macros/outputmacros.aspx 에 보니

img5.png
이런 코드가 있다. 이놈이 프로그램을 실행시켜주는 코드 인것 같다. 그렇지 않는가?

Dim strOutputDir
strOutputDir = " C:Program FilesGnuWin32 insource-highlight.exe " + "-s cpp -f html --data-dir="+""C:Program FilesGnuWin32sharesource-highlight""+" --style-file=user.style --line-number-ref "+""c:WindowsTempTmp.cpp""

Set oShell = CreateObject("WScript.Shell")
oShell.Run("""" + strOutputDir + """")

이렇게 하면 될것 같다.
자 해보자.

음.. VBScript에서는 " 큰 따옴표를 표시하기 위해서는 """" 이렇게 해줘야 하는구나..--;;;
 

    strOutputDirstrOutputDir =  """"+_

                                "C:Program FilesGnuWin32 insource-highlight.exe"+ _

                                """"+_

                                " -s cpp -f html --data-dir="+_

                                """"+_

                                "C:Program FilesGnuWin32sharesource-highlight"+_

                                """"+_

                                " --style-file=user_blog.style --line-number-ref -o STDOUT "+_

                                """"+_

                                "c:WindowsTempTmp.cpp"+_

                                """"

 

 


01: 

02: '------------------------------------------------------------------------------

03: 'FILE DESCRIPTION: New Macro File

04: '------------------------------------------------------------------------------

05: Sub SaveFile()

06: 'DESCRIPTION: SaveFile

07:

08: Dim strOutputDirstrOutputDir

09: ' 선택한 영역을 파일에 저장한다.

10: Set objFSO = CreateObject("Scripting.FileSystemObject")

11: Set objTextFile = objFSO.CreateTextFile("C:\WINDOWS\Temp\Tmp.cpp", True)

12:

13: objTextFile.Write (ActiveDocument.Selection)

14:

15: objTextFile.Close

16:

17: strOutputDirstrOutputDir = """"+_

18: "C:\Program Files\GnuWin32\bin\source-highlight.exe"+ _

19: """"+_

20: " -s cpp -f html --data-dir="+_

21: """"+_

22: "C:\Program Files\GnuWin32\share\source-highlight"+_

23: """"+_

24: " --style-file=user_blog.style --line-number-ref "+_

25: """"+_

26: "c:\Windows\Temp\Tmp.cpp"+_

27: """"

28:

29: Set oShell = CreateObject("WScript.Shell")

30: oShell.Run(strOutputDirstrOutputDir)

31:

32: End Sub




음... 이렇게 하니...

Tmp.cpp.html 파일이 생성되었다.
 
p;img8.png
 자 그러면 어떻게 생성되었는지 확인해보자...이쁘게 나왔겠지???




01:
02: //************************************
03: // Method: LoadModule
04: // FullName: APIMgr::LoadModule
05: // Access: public
06: // Returns: HMODULE
07: // Qualifier:
08: // Parameter: LPCTSTR lpctszModuleName_i
09: //************************************
10:
11: HMODULE APIMgr::LoadModule( LPCTSTR lpctszModuleName_i )
12: {
13: HMODULE hMod = LoadLibrary( lpctszModuleName_i );
14: if( !hMod )
15: {
16: return 0;
17: }
18:
19: // Store module
20: m_ModuleHandleMap[lpctszModuleName_i] = hMod;
21: return hMod;
22: }

 

[source-highlight 팁 ]
source-hightlight의 ' ' HTML변환 기본값으로 ' '으로 되어 있어
저와 같이 나모웹에디터 콘트롤을 사용하는 경우 줄과 줄이 붙어서 보인다.
그렇다면 ' '을 '<br> ' 으로 변환해줘야 하는데, 방법은 다음과 같다.

"C:Program Files\GnuWin32\sharesource-highlight\html.outlang" 에


translations

"\n" "<br>\n"

end



을 추가해주면 된다.

img9.png
 
MYMACROS.DSM

덧글

  • daewonyoon 2008/12/08 09:13 #

    gvim ( www.vim.org ) 설치 - gvim 에 소스 긁어 붙이기 - :set syn=cpp - :TOhtml - 창이 나눠지면서 변환된 html 생성. - 옮겨 붙이면서 좋아하는 고정폭 글꼴을 <font face="글꼴이름"> </font> 태그로 지정함.
  • 미친감자 2008/12/09 19:34 #

    gvim이 익숙하지가 안해서--;;; 이제라도 gvim을 사행해봐야겠네요
  • somma 2008/12/12 10:41 # 삭제

    전 그냥 아크로에디터에서 html 로 변환해서 붙여넣기 한다는.. :-)
  • 이홍석 2008/12/13 01:37 #

    음.. 인터페이스가 자동화되지 않으면 귀찮아서 안쓰게 되어서
    예전 제 계정에 vim 을 이용해 붙여보려다가 무료계정이라 vim 권한이 없길래
    "아 너무 귀찮아..==; 자주 쓰지도 않는데 걍 안할래" 하고 말았는데
    차곡차곡 하나씩 찾아서 실행에 옮기시는 모습을 보니 보고 배워야겠다는 생각이 듭니다...
  • vbdream 2008/12/17 03:58 # 삭제

    VS 6.0 Macro가 VB 기반이었나요~~ 오옷 신기합니다...^^
  • 미친감자 2008/12/17 09:24 #

    그러게요... vb 스크립트더라구요.. ASP스크립트와 거의 비슷한데..약간 아주 약간 틀리더라구요...
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.



통계 위젯 (화이트)

18
47
570741

이 이글루를 링크한 사람 (화이트)

105