Fortran添加多行注释

来源:互联网 发布:php设置session有效期 编辑:程序博客网 时间:2024/06/08 18:24
原文地址:Fortran添加多行注释作者:星湖夜雨
做法:

(1) 在..Microsoft VisualStudioCommonMSDEV98MACROS文件夹下生成文件GrpComment.dsm
(2) 用文本编辑器打开该文件,将以下所附的代码贴在其中,保存(注意保留.dsm后缀)
(3) 启动CVF,选Tools=>Customize=>Add-insand Macro Files
(4) 在GrpComment前打勾,去掉其他的勾
(5)在同一对话框中选Commands=>Macros,此时在右边可以看见CommentDel和CommentOut
(6) 选中CommentOut,拖到CVF的工具栏上去(添加工具钮),会弹出Button Appearance对话框
(7) 选Image and text,在下边Buttontext框中输入名称(默认是CommentOut),如“加注释”
(8) 类似的方法再将CommentDel命令以工具钮的形式添加到工具栏上,名称可取为“去注释”

这时,工具栏上应该多了两个工具钮:“加注释”和“去注释”。

用法:

加注释:选择要加注释的多行代码,点击“加注释”按钮即可;
去注释:选择已经注释的多行代码,点击“去注释”按钮即可。

适用:后缀为f90或f77的代码文件,根据编译器默认的文件后缀不同,自行修改(f90为.f90,f77为.f)。

Enjoy!!!


VBscript代码:

Function FileType (ByVal doc)
    ext= doc.Name
    FileType= 0
    pos= Instr(ext, ".")
    ifpos > 0 then
        DoWhile pos <> 1
            ext= Mid(ext, pos, Len(ext) - pos + 1)
            pos= Instr(ext, ".")
        Loop
        ext= LCase(ext)
    endif
    Ifext = ".f90" Then
        FileType= 8
    ElseIfext = ".f" Then
        FileType= 9
    Else
        FileType= 0
    EndIf
End Function


Sub CommentOut ()
'DESCRIPTION: 为所选的多行代码加注释
    Dimwin
    setwin = ActiveWindow
    ifwin.type <> "Text" Then
      MsgBox"This macro can only be run when a text editor window isactive."
    else
        TypeOfFile=FileType(ActiveDocument)  
        IfTypeOfFile = 8 Or TypeOfFile = 9 Then

            IfTypeOfFile = 8 Then
                CommentType= "! "  ' Fortran 90 file
            Else
                CommentType= "C "  ' Fortran 77 file
            EndIf
     
            StartLine= ActiveDocument.Selection.TopLine
            EndLine= ActiveDocument.Selection.BottomLine
            IfEndLine < StartLine Then
                Temp= StartLine
                StartLine= EndLine
                EndLine= Temp
            EndIf

            IfEndLine = StartLine Then
                ActiveDocument.Selection.SelectLine
                ActiveDocument.Selection= CommentType + ActiveDocument.Selection

            Else
                Fori = StartLine To EndLine
                    ActiveDocument.Selection.GoToLinei
                    ActiveDocument.Selection.SelectLine
                    ActiveDocument.Selection= CommentType + _
                        ActiveDocument.Selection
                Next
            EndIf
        else
            MsgBox("Unableto comment out the highlighted text" + vbLf + _
                    "becausethe file type was unrecognized." + vbLf + _
                    "Ifthe file has not yet been saved, " + vbLf + _
                    "pleasesave it and try again.")
        EndIf
    EndIf
End Sub


Sub CommentDel ()
'DESCRIPTION: 去除所选的多行代码的注释
    Dimwin
    setwin = ActiveWindow
    ifwin.type <> "Text" Then
        MsgBox"This macro can only be run when a text editor window isactive."
    else
        TypeOfFile=FileType(ActiveDocument)  
        IfTypeOfFile = 8 Or TypeOfFile = 9 Then

            StartLine= ActiveDocument.Selection.TopLine
            EndLine= ActiveDocument.Selection.BottomLine
            IfEndLine < StartLine Then
                Temp= StartLine
                StartLine= EndLine
                EndLine= Temp
            EndIf

            IfEndLine = StartLine Then
                ActiveDocument.Selection.SelectLine
                ActiveDocument.Selection= mid(ActiveDocument.Selection, 3)
            Else
                Fori = StartLine To EndLine
                    ActiveDocument.Selection.GoToLinei
                    ActiveDocument.Selection.SelectLine
                    ActiveDocument.Selection= mid(ActiveDocument.Selection, 3)
                Next
            EndIf
        else
            MsgBox("Unableto comment out the highlighted text" + vbLf + _
                    "becausethe file type was unrecognized." + vbLf + _
                    "Ifthe file has not yet been saved, " + vbLf + _
                    "pleasesave it and try again.")
        EndIf
    EndIf
End Sub
1 0