fortran 多行注释

你编程序时肯定遇到要一次为很多行代码加注释的情况,以前我都是一行行的加“!”,今天偶然在一个论坛上看到一个解决方案,而且自己按照他的方法,试验了一下,证明切实可行!
现与大家分享:aaaaaa


不止一位问道可不可以在visual fortran中为多行代码加注释。
visual fortran本身无这样的功能,但是可以用macro功能自己添!而且是添加工具钮!


做法:

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

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

用法:

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

适用:后缀为f90或f77的代码文件。

Enjoy!!!


VBscript代码:

Function FileType (ByVal doc)
    ext = doc.Name
    FileType = 0
    pos = Instr(ext, ".")
    if pos > 0 then
        Do While pos <> 1
            ext = Mid(ext, pos, Len(ext) - pos + 1)
            pos = Instr(ext, ".")
        Loop
        ext = LCase(ext)
    end if
    If ext = ".f90" Then
        FileType = 8
    ElseIf ext = ".for" Then
        FileType = 9
    Else
        FileType = 0
    End If
End Function


Sub CommentOut ()
'DESCRIPTION: 为所选的多行代码加注释
    Dim win
    set win = ActiveWindow
    if win.type <> "Text" Then
      MsgBox "This macro can only be run when a text editor window is active."
    else
        TypeOfFile = FileType(ActiveDocument)  
        If TypeOfFile = 8 Or TypeOfFile = 9 Then

            If TypeOfFile = 8 Then
                CommentType = "! "  ' Fortran 90 file
            Else
                CommentType = "C "  ' Fortran 77 file
            End If
     
            StartLine = ActiveDocument.Selection.TopLine
            EndLine = ActiveDocument.Selection.BottomLine
            If EndLine < StartLine Then
                Temp = StartLine
                StartLine = EndLine
                EndLine = Temp
            End If

            If EndLine = StartLine Then
                ActiveDocument.Selection.SelectLine
                ActiveDocument.Selection = CommentType + ActiveDocument.Selection

            Else
                For i = StartLine To EndLine
                    ActiveDocument.Selection.GoToLine i
                    ActiveDocument.Selection.SelectLine
                    ActiveDocument.Selection = CommentType + _
                        ActiveDocument.Selection
                Next
            End If
        else
            MsgBox("Unable to comment out the highlighted text" + vbLf + _
                    "because the file type was unrecognized." + vbLf + _
                    "If the file has not yet been saved, " + vbLf + _
                    "please save it and try again.")
        End If
    End If
End Sub


Sub CommentDel ()
'DESCRIPTION: 去除所选的多行代码的注释
    Dim win
    set win = ActiveWindow
    if win.type <> "Text" Then
        MsgBox "This macro can only be run when a text editor window is active."
    else
        TypeOfFile = FileType(ActiveDocument)  
        If TypeOfFile = 8 Or TypeOfFile = 9 Then

            StartLine = ActiveDocument.Selection.TopLine
            EndLine = ActiveDocument.Selection.BottomLine
            If EndLine < StartLine Then
                Temp = StartLine
                StartLine = EndLine
                EndLine = Temp
            End If

            If EndLine = StartLine Then
                ActiveDocument.Selection.SelectLine
                ActiveDocument.Selection = mid(ActiveDocument.Selection, 3)
            Else
                For i = StartLine To EndLine
                    ActiveDocument.Selection.GoToLine i
                    ActiveDocument.Selection.SelectLine
                    ActiveDocument.Selection = mid(ActiveDocument.Selection, 3)
                Next
            End If
        else
            MsgBox("Unable to comment out the highlighted text" + vbLf + _
                    "because the file type was unrecognized." + vbLf + _
                    "If the file has not yet been saved, " + vbLf + _
                    "please save it and try again.")
        End If
    End If
End Sub

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章