⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsjpworddeal.cls

📁 日语各种词性变形工具
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "JPWordDeal"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit

Private strWord As String
Private enmType As EType
Private Const KEY_A = ""

Public Enum EType
    etNoun 'ming ci
    etAdjective 'xing rong ci
    etVerb1 'dong ci
    etVerb2
    etVerb3Ka
    etVerb3Sa
    etAdVerb 'xing rong dong ci
    etUnkown 'wei zhi
End Enum

Private Type T_KeyWord
    strKeyA As String
    strKeyI As String
    strKeyU As String
    strKeyU2 As String
    strKeyU2MaSi As String
    strKeyU2TE As String
    strKeyU2TA As String
    strKeyU2NaYi As String
    strKeyU2YiZi As String
    strKeyE As String
    strKeyO As String
    vA As Variant
    vI As Variant
    vU As Variant
    vU2 As Variant
    vU2MaSi As Variant
    vU2TE As Variant
    vU2TA As Variant
    vU2NaYi As Variant
    vU2YiZi As Variant
    vE As Variant
    vO As Variant
End Type
Private tkword As T_KeyWord

Private Sub Class_Initialize()
    tkword.strKeyA = "偁,偐,偝,偨,側,偼,傑,傗,傜,傢"
    tkword.strKeyI = "偄,偒,偟,偪,偵,傂,傒,偄,傝,偄"
    tkword.strKeyU = "偆,偔,偡,偮,偸,傆,傓,備,傞,偆"
    tkword.strKeyU2 = "偆,偔,偖,偡,偮,偸,傇,傓,傞"
    tkword.strKeyU2MaSi = "偄,偒,偓,偟,偪,偵,傃,傒,傝"
    tkword.strKeyU2TE = "偭偰,偟偰,偟偱,偟偰,偭偰,傫偱,傫偱,傫偱,偭偰"
    tkword.strKeyU2TA = "偭偨,偟偨,偟偩,偟偨,偭偨,傫偩,傫偩,傫偩,偭偨"
    tkword.strKeyU2NaYi = "偁,偐,偑,偝,偨,側,偽,傑,傜"
    tkword.strKeyU2YiZi = "偍,偙,偛,偦,偲,偺,傏,傕,傠"
    tkword.strKeyE = "偊,偗,偣,偰,偹,傊,傔,偊,傟,偊"
    tkword.strKeyO = "偍,偙,偦,偲,偺,傎,傕,傛,傠,傪"
    tkword.vA = Split(tkword.strKeyA, ",")
    tkword.vI = Split(tkword.strKeyI, ",")
    tkword.vU = Split(tkword.strKeyU, ",")
    tkword.vU2 = Split(tkword.strKeyU2, ",")
    tkword.vU2MaSi = Split(tkword.strKeyU2MaSi, ",")
    tkword.vU2TE = Split(tkword.strKeyU2TE, ",")
    tkword.vU2TA = Split(tkword.strKeyU2TA, ",")
    tkword.vU2NaYi = Split(tkword.strKeyU2NaYi, ",")
    tkword.vU2YiZi = Split(tkword.strKeyU2YiZi, ",")
    tkword.vE = Split(tkword.strKeyE, ",")
    tkword.vO = Split(tkword.strKeyO, ",")
End Sub

Public Property Let Word(strUserWord As String)
    strUserWord = Trim(strUserWord)
    strWord = strUserWord
    enmType = etUnkown
    If Len(strWord) >= 2 Then
        enmType = enmGetWordType(strWord)
    End If
End Property
Public Property Get Word() As String
    Word = strWord
End Property
'get the word's type
Public Property Get WordType() As EType
    WordType = enmType
End Property
'let the word's type
Public Property Let WordType(enmT As EType)
    enmType = enmT
End Property

Public Function Result() As String
    Dim strTempResult$, strTemp$, strBase$
    Dim strKeyMaSi$, strKeyTA$, strKeyTE$, strKeyNaYi$, strKeyYiZi$
    If Len(strWord) < 2 Then Exit Function
    Select Case enmType
        Case etNoun
            strTemp = strWord
            strTempResult = strTemp & "偱偡" & vbCrLf & _
                            strTemp & "偱偟偨" & vbCrLf & _
                            strTemp & "偱偼偁傝傑偣傫" & vbCrLf & _
                            strTemp & "偱偼偁傝傑偣傫偱偟偨" & vbCrLf & _
                            "" & vbCrLf & _
                            strTemp & "偩" & vbCrLf & _
                            strTemp & "偩偭偨" & vbCrLf & _
                            strTemp & "偱偼側偄" & vbCrLf & _
                            strTemp & "偩偼側偄偐偭偨"
        Case etAdjective
            strTemp = Left(strWord, Len(strWord) - 1)
            strTempResult = strWord & "偱偡" & vbCrLf & _
                            strTemp & "偐偭偨偱偡" & vbCrLf & _
                            strTemp & "偔側偄偱偡丂丂丂丂偔偁傝傑偣傫" & vbCrLf & _
                            strTemp & "偔側偐偮偨偱偡丂丂偔偁傝傑偣傫偱偟偨" & vbCrLf & _
                            "" & vbCrLf & _
                            strWord & vbCrLf & _
                            strTemp & "偐偭偨" & vbCrLf & _
                            strTemp & "偔側偄" & vbCrLf & _
                            strTemp & "偔側偐偭偨"
        Case etVerb1
            strBase = Left(strWord, Len(strWord) - 1)
            strKeyMaSi = strGetMaSi(Right(strWord, 1))
            strKeyTA = strGetU2TA(Right(strWord, 1))
            strKeyTE = strGetU2TE(Right(strWord, 1))
            strKeyNaYi = strGetU2NaYi(Right(strWord, 1))
            strKeyYiZi = strGetU2YiZi(Right(strWord, 1))
            strTempResult = strBase & strKeyMaSi & "傑偡" & vbCrLf & _
                            strBase & strKeyMaSi & "傑偟偨" & vbCrLf & _
                            strBase & strKeyMaSi & "傑偣傫" & vbCrLf & _
                            strBase & strKeyMaSi & "傑偣傫偱偟偨" & vbCrLf & _
                            "" & vbCrLf & _
                            strWord & vbCrLf & _
                            strBase & "乕" & vbCrLf & _
                            strBase & "乕" & vbCrLf & _
                            strBase & "乕" & vbCrLf & _
                            "" & vbCrLf & _
                            strBase & strKeyMaSi & "傑偡" & vbCrLf & _
                            strBase & strKeyTA & vbCrLf & _
                            strBase & strKeyTE & vbCrLf & _
                            strBase & strKeyNaYi & "側偄" & vbCrLf & _
                            strBase & strKeyYiZi & "偆"

        Case etVerb2
            strTemp = Left(strWord, Len(strWord) - 1)
            strTempResult = strTemp & "傑偡" & vbCrLf & _
                            strTemp & "傑偟偨" & vbCrLf & _
                            strTemp & "傑偣傫" & vbCrLf & _
                            strTemp & "傑偣傫偱偟偨"
        Case etVerb3Ka
            strTemp = Left(strWord, Len(strWord) - 2)
            strTempResult = strTemp & "偟傑偡" & vbCrLf & _
                            strTemp & "偟傑偟偨" & vbCrLf & _
                            strTemp & "偟傑偣傫" & vbCrLf & _
                            strTemp & "偟傑偣傫偱偟偨"
        Case etVerb3Sa
            strTemp = Left(strWord, Len(strWord) - 2)
            strTempResult = strTemp & "棃(偒)傑偡" & vbCrLf & _
                            strTemp & "棃(偒)傑偟偨" & vbCrLf & _
                            strTemp & "棃(偒)傑偣傫" & vbCrLf & _
                            strTemp & "棃(偒)傑偣傫偱偟偨"
        Case etAdVerb
            strTemp = Left(strWord, Len(strWord) - 1)
            strTempResult = strTemp & "偱偡" & vbCrLf & _
                            strTemp & "偱偟偨" & vbCrLf & _
                            strTemp & "偱偼偁傝傑偣傫" & vbCrLf & _
                            strTemp & "偱偼偁傝傑偣傫偱偟偨" & vbCrLf & _
                            "" & vbCrLf & _
                            strWord & vbCrLf & _
                            strWord & "偭偨" & vbCrLf & _
                            strTemp & "偱偼側偄" & vbCrLf & _
                            strTemp & "偱偼側偐偭偨"
        Case etUnkown
    End Select
    Result = strTempResult
End Function
'juge u->i
Private Function strGetMaSi(strKey$) As String
    Dim i%
    For i = 0 To UBound(tkword.vU2)
        If tkword.vU2(i) = strKey Then
            strGetMaSi = tkword.vU2MaSi(i)
            Exit Function
        End If
    Next
End Function
'juge u->te bian
Private Function strGetU2TE(strKey$) As String
    Dim i%
    For i = 0 To UBound(tkword.vU2)
        If tkword.vU2(i) = strKey Then
            strGetU2TE = tkword.vU2TE(i)
            Exit Function
        End If
    Next
End Function
'juge u->ta bian
Private Function strGetU2TA(strKey$) As String
    Dim i%
    For i = 0 To UBound(tkword.vU2)
        If tkword.vU2(i) = strKey Then
            strGetU2TA = tkword.vU2TA(i)
            Exit Function
        End If
    Next
End Function
'juge u->nayi bian
Private Function strGetU2NaYi(strKey$) As String
    Dim i%
    For i = 0 To UBound(tkword.vU2)
        If tkword.vU2(i) = strKey Then
            strGetU2NaYi = tkword.vU2NaYi(i)
            Exit Function
        End If
    Next
End Function
'juge u->yizi bian
Private Function strGetU2YiZi(strKey$) As String
    Dim i%
    For i = 0 To UBound(tkword.vU2)
        If tkword.vU2(i) = strKey Then
            strGetU2YiZi = tkword.vU2YiZi(i)
            Exit Function
        End If
    Next
End Function
'get the type
Private Function enmGetWordType(strTempWord As String) As EType
    Dim strR1$, strR2$, strR1_2$
    strR1 = Right(strTempWord, 1)
    strR1_2 = Right(strTempWord, 2)
    strR2 = Mid(strTempWord, Len(strTempWord) - 1, 1)
    Select Case strR1
        Case "偄"
            enmGetWordType = etAdjective
        Case "偩"
            enmGetWordType = etAdVerb
        Case "傞"
            Select Case strR1_2
                Case "偔傞"
                    enmGetWordType = etVerb3Ka
                Case "棃傞"
                    enmGetWordType = etVerb3Ka
                Case "偡傞"
                    enmGetWordType = etVerb3Sa
                Case Else
                    If InStr(tkword.strKeyI, strR2) > 0 Or InStr(tkword.strKeyE, strR2) > 0 Then
                        enmGetWordType = etVerb2
                    Else
                        enmGetWordType = etVerb1
                    End If
            End Select
        Case Else
            If InStr(tkword.strKeyU2, strR1) > 0 Then
                enmGetWordType = etVerb1
            Else
                enmGetWordType = etNoun
            End If
    End Select
'    Form1.rtbResult.SelStart = Len(Form1.rtbResult.Text)
'    Form1.rtbResult.SelText = enmGetWordType & vbCrLf
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -