VBS、ASP代码语法加亮显示的类

来源:互联网 发布:linux80端口怎么开启 编辑:程序博客网 时间:2024/04/25 22:30
 <% Class cBuffer
    Private objFSO, objFile, objDict
    Private m_strPathToFile, m_TableBGColor, m_StartTime
    Private m_EndTime, m_LineCount, m_intKeyMin, m_intKeyMax
    Private m_CodeColor, m_CommentColor, m_StringColor, m_TabSpaces
    
    Private Sub Class_Initialize()
        TableBGColor = "white"
        CodeColor = "Blue"
        CommentColor = "Green"
        StringColor = "Gray"
        TabSpaces = "    "
        PathToFile = ""
        
        m_StartTime = 0
        m_EndTime = 0
        m_LineCount = 0
        
        KeyMin = 2
        KeyMax = 8
        
        Set objDict = server.CreateObject("Scripting.Dictionary")
        objDict.CompareMode = 1
        
        CreateKeywords
        
        Set objFSO = server.CreateObject("Scripting.FileSystemObject")
    End Sub

    Private Sub Class_Terminate()
        Set objDict = Nothing
        Set objFSO = Nothing
    End Sub
    
   
    Public Property Let CodeColor(inColor)
        m_CodeColor = "<font color=" & inColor & "><Strong>"
    End Property
    Private Property Get CodeColor()
        CodeColor = m_CodeColor
    End Property

    Public Property Let CommentColor(inColor)
        m_CommentColor = "<font color=" & inColor & ">"
    End Property
    Private Property Get CommentColor()
        CommentColor = m_CommentColor
    End Property

    Public Property Let StringColor(inColor)
        m_StringColor = "<font color=" & inColor & ">"
    End Property
    Private Property Get StringColor()
        StringColor = m_StringColor
    End Property

    Public Property Let TabSpaces(inSpaces)
        m_TabSpaces = inSpaces
    End Property
    Private Property Get TabSpaces()
        TabSpaces = m_TabSpaces
    End Property

    Public Property Let TableBGColor(inColor)
        m_TableBGColor = inColor
    End Property

    Private Property Get TableBGColor()
        TableBGColor = m_TableBGColor
    End Property

    Public Property Get ProcessingTime()
        ProcessingTime = Second(m_EndTime - m_StartTime)
    End Property

    Public Property Get LineCount()
        LineCount = m_LineCount
    End Property

    Public Property Get PathToFile()
        PathToFile = m_strPathToFile
    End Property
    Public Property Let PathToFile(inPath)
        m_strPathToFile = inPath
    End Property

    Private Property Let KeyMin(inMin)
        m_intKeyMin = inMin
    End Property
    Private Property Get KeyMin()
        KeyMin = m_intKeyMin
    End Property
    Private Property Let KeyMax(inMax)
        m_intKeyMax = inMax
    End Property
    Private Property Get KeyMax()
        KeyMax = m_intKeyMax
    End Property

    Private Sub CreateKeywords()
        objDict.Add "abs", "Abs"
        objDict.Add "and", "And"
        objDict.Add "array", "Array"
        objDict.Add "call", "Call"
        objDict.Add "cbool", "CBool"
        objDict.Add "cbyte", "CByte"
        objDict.Add "ccur", "CCur"
        objDict.Add "cdate", "CDate"
        objDict.Add "cdbl", "CDbl"
        objDict.Add "cint", "CInt"
        objDict.Add "class", "Class"
        objDict.Add "clng", "CLng"
        objDict.Add "const", "Const"
        objDict.Add "csng", "CSng"
        objDict.Add "cstr", "CStr"
        objDict.Add "date", "Date"
        objDict.Add "dim", "Dim"
        objDict.Add "do", "Do"
        objDict.Add "loop", "Loop"
        objDict.Add "empty", "Empty"
        objDict.Add "eqv", "Eqv"
        objDict.Add "erase", "Erase"