帝王谷资源网 Design By www.wdxyy.com
复制代码 代码如下:
Class template
Private c_Char, c_Path, c_FileName, c_Content, c_PageUrl, c_CurrentPage, c_PageStr, ReplacePageStr
Private TagName
' ***************************************
' 设置编码
' ***************************************
Public Property Let Char(ByVal Str)
c_Char = Str
End Property
Public Property Get Char
Char = c_Char
End Property
' ***************************************
' 设置模板文件夹路径
' ***************************************
Public Property Let Path(ByVal Str)
c_Path = Str
End Property
Public Property Get Path
Path = c_Path
End Property
' ***************************************
' 设置模板文件名
' ***************************************
Public Property Let FileName(ByVal Str)
c_FileName = Str
End Property
Public Property Get FileName
FileName = c_FileName
End Property
' ***************************************
' 获得模板文件具体路径
' ***************************************
Public Property Get FilePath
If Len(Path) > 0 Then Path = Replace(Path, "\", "/")
If Right(Path, 1) <> "/" Then Path = Path & "/"
FilePath = Path & FileName
End Property
' ***************************************
' 设置分页URL
' ***************************************
Public Property Let PageUrl(ByVal Str)
c_PageUrl = Str
End Property
Public Property Get PageUrl
PageUrl = c_PageUrl
End Property
' ***************************************
' 设置分页 当前页
' ***************************************
Public Property Let CurrentPage(ByVal Str)
c_CurrentPage = Str
End Property
Public Property Get CurrentPage
CurrentPage = c_CurrentPage
End Property
' ***************************************
' 输出内容
' ***************************************
Public Property Get Flush
Response.Write(c_Content)
End Property
' ***************************************
' 类初始化
' ***************************************
Private Sub Class_Initialize
TagName = "pjblog"
c_Char = "UTF-8"
ReplacePageStr = Array("", "")
End Sub
' ***************************************
' 过滤冲突字符
' ***************************************
Private Function doQuote(ByVal Str)
doQuote = Replace(Str, Chr(34), """)
End Function
' ***************************************
' 类终结
' ***************************************
Private Sub Class_Terminate
End Sub
' ***************************************
' 加载文件方法
' ***************************************
Private Function LoadFromFile(ByVal cPath)
Dim obj
Set obj = Server.CreateObject("ADODB.Stream")
With obj
.Type = 2
.Mode = 3
.Open
.Charset = Char
.Position = .Size
.LoadFromFile Server.MapPath(cPath)
LoadFromFile = .ReadText
.close
End With
Set obj = Nothing
End Function
' ***********************************************
' 获取正则匹配对象
' ***********************************************
Public Function GetMatch(ByVal Str, ByVal Rex)
Dim Reg, Mag
Set Reg = New RegExp
With Reg
.IgnoreCase = True
.Global = True
.Pattern = Rex
Set Mag = .Execute(Str)
If Mag.Count > 0 Then
Set GetMatch = Mag
Else
Set GetMatch = Server.CreateObject("Scripting.Dictionary")
End If
End With
Set Reg = nothing
End Function
' ***************************************
' 打开文档
' ***************************************
Public Sub open
c_Content = LoadFromFile(FilePath)
End Sub
' ***************************************
' 缓冲执行
' ***************************************
Public Sub Buffer
c_Content = GridView(c_Content)
Call ExecuteFunction
End Sub
' ***************************************
' GridView
' ***************************************
Private Function GridView(ByVal o_Content)
Dim Matches, SubMatches, SubText
Dim Attribute, Content
Set Matches = GetMatch(o_Content, "\<" & TagName & "\:(\d+?)(.+?)\>([\s\S]+?)<\/" & TagName & "\:\1\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
Attribute = SubMatches.SubMatches(1) ' kocms
Content = SubMatches.SubMatches(2) ' <Columns>...</Columns>
SubText = Process(Attribute, Content) ' 返回所有过程执行后的结果
o_Content = Replace(o_Content, SubMatches.value, "<" & SubText(2) & SubText(0) & ">" & SubText(1) & "</" & SubText(2) & ">", 1, -1, 1) ' 替换标签变量
Next
End If
Set Matches = Nothing
If Len(ReplacePageStr(0)) > 0 Then ' 判断是否标签变量有值,如果有就替换掉.
o_Content = Replace(o_Content, ReplacePageStr(0), ReplacePageStr(1), 1, -1, 1)
ReplacePageStr = Array("", "") ' 替换后清空该数组变量
End If
GridView = o_Content
End Function
' ***************************************
' 确定属性
' ***************************************
Private Function Process(ByVal Attribute, ByVal Content)
Dim Matches, SubMatches, Text
Dim MatchTag, MatchContent
Dim datasource, Name, Element, page, id
datasource = "" : Name = "" : Element = "" : page = 0 : id = ""
Set Matches = GetMatch(Attribute, "\s(.+?)\=\""(.+?)\""")
If Matches.Count > 0 Then
For Each SubMatches In Matches
MatchTag = SubMatches.SubMatches(0) ' 取得属性名
MatchContent = SubMatches.SubMatches(1) ' 取得属性值
If Lcase(MatchTag) = "name" Then Name = MatchContent ' 取得name属性值
If Lcase(MatchTag) = "datasource" Then datasource = MatchContent' 取得datasource属性值
If Lcase(MatchTag) = "element" Then Element = MatchContent ' 取得element属性值
If Lcase(MatchTag) = "page" Then page = MatchContent ' 取得page属性值
If Lcase(MatchTag) = "id" Then id = MatchContent ' 取得id属性值
Next
If Len(Name) > 0 And Len(MatchContent) > 0 Then
Text = Analysis(datasource, Name, Content, page, id) ' 执行解析属性
If Len(datasource) > 0 Then Attribute = Replace(Attribute, "datasource=""" & datasource & """", "")
If page > 0 Then Attribute = Replace(Attribute, "page=""" & page & """", "")
Attribute = Replace(Attribute, "name=""" & Name & """", "", 1, -1, 1)
Attribute = Replace(Attribute, "element=""" & Element & """", "", 1, -1, 1)
Process = Array(Attribute, Text, Element)
Else
Process = Array(Attribute, "", "div")
End If
Else
Process = Array(Attribute, "", "div")
End If
Set Matches = Nothing
End Function
' ***************************************
' 解析
' ***************************************
Private Function Analysis(ByVal id, ByVal Name, ByVal Content, ByVal page, ByVal PageID)
Dim Data
Select Case Lcase(Name) ' 选择数据源
Case "loop" Data = DataBind(id, Content, page, PageID)
Case "for" Data = DataFor(id, Content, page, PageID)
End Select
Analysis = Data
End Function
' ***************************************
' 绑定数据源
' ***************************************
Private Function DataBind(ByVal id, ByVal Content, ByVal page, ByVal PageID)
Dim Text, Matches, SubMatches, SubText
Execute "Text = " & id & "(1)" ' 加载数据源
Set Matches = GetMatch(Content, "\<Columns\>([\s\S]+)\<\/Columns\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
SubText = ItemTemplate(SubMatches.SubMatches(0), Text, page, PageID)' 执行模块替换
Content = Replace(Content, SubMatches.value, SubText, 1, -1, 1)
Next
DataBind = Content
Else
DataBind = ""
End If
Set Matches = Nothing
End Function
' ***************************************
' 匹配模板实例
' ***************************************
Private Function ItemTemplate(ByVal TextTag, ByVal Text, ByVal page, ByVal PageID)
Dim Matches, SubMatches, SubMatchText
Dim SecMatch, SecSubMatch
Dim i, TempText
Dim TextLen, TextLeft, TextRight
Set Matches = GetMatch(TextTag, "\<ItemTemplate\>([\s\S]+)\<\/ItemTemplate\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
SubMatchText = SubMatches.SubMatches(0)
' ---------------------------------------------
' 循环嵌套开始
' ---------------------------------------------
SubMatchText = GridView(SubMatchText)
' ---------------------------------------------
' 循环嵌套结束
' ---------------------------------------------
If UBound(Text, 1) = 0 Then
TempText = ""
Else
TempText = ""
' -----------------------------------------------
' 开始分页
' -----------------------------------------------
If Len(page) > 0 And page > 0 Then
If Len(CurrentPage) = 0 Or CurrentPage = 0 Then CurrentPage = 1
TextLen = UBound(Text, 2)
TextLeft = (CurrentPage - 1) * page
TextRight = CurrentPage * page - 1
If TextLeft < 0 Then TextLeft = 0
If TextRight > TextLen Then TextRight = TextLen
c_PageStr = MultiPage(TextLen + 1, page, CurrentPage, PageUrl, "float:right", "", False)
If Int(Len(c_PageStr)) > 0 Then
ReplacePageStr = Array("<page:" & Trim(PageID) & "/>", c_PageStr)
Else
ReplacePageStr = Array("<page:" & Trim(PageID) & "/>", "")
End If
Else
TextLeft = 0
TextRight = UBound(Text, 2)
End If
For i = TextLeft To TextRight
TempText = TempText & ItemReSec(i, SubMatchText, Text) ' 加载模板内容
Next
End If
Next
ItemTemplate = TempText
Else
ItemTemplate = ""
End If
Set Matches = Nothing
End Function
' ***************************************
' 替换模板字符串
' ***************************************
Private Function ItemReSec(ByVal i, ByVal Text, ByVal Arrays)
Dim Matches, SubMatches
Set Matches = GetMatch(Text, "\$(\d+?)")
If Matches.Count > 0 Then
For Each SubMatches In Matches
Text = Replace(Text, SubMatches.value, doQuote(Arrays(SubMatches.SubMatches(0), i)), 1, -1, 1) '执行替换
Next
ItemReSec = Text
Else
ItemReSec = ""
End If
Set Matches = Nothing
End Function
' ***************************************
' 全局变量函数
' ***************************************
Private Sub ExecuteFunction
Dim Matches, SubMatches, Text, ExeText
Set Matches = GetMatch(c_Content, "\<function\:([0-9a-zA-Z_\.]*?)\((.*?)\""(.+?)\""(.*?)\)\/\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
Text = SubMatches.SubMatches(0) & "(" & SubMatches.SubMatches(1) & """" & SubMatches.SubMatches(2) & """" & SubMatches.SubMatches(3) & ")"
Execute "ExeText=" & Text
c_Content = Replace(c_Content, SubMatches.value, ExeText, 1, -1, 1)
Next
End If
Set Matches = Nothing
End Sub
' ***************************************
' 普通替换全局标签
' ***************************************
Public Property Let Sets(ByVal t, ByVal s)
Dim SetMatch, Bstr, SetSubMatch
Set SetMatch = GetMatch(c_Content, "(\<Set\:([0-9a-zA-Z_\.]*?)\(((.*?)" & t & "(.*?))?\)\/\>)")
If SetMatch.Count > 0 Then
For Each SetSubMatch In SetMatch
Execute "Bstr = " & SetSubMatch.SubMatches(1) & "(" & SetSubMatch.SubMatches(3) & """" & s & """" & SetSubMatch.SubMatches(4) & ")"
c_Content = Replace(c_Content, SetSubMatch.Value, Bstr, 1, -1, 1)
Next
End If
Set SetMatch = Nothing
Set SetMatch = GetMatch(c_Content, "(\<Set\:" & t & "\/\>)")
If SetMatch.Count > 0 Then
For Each SetSubMatch In SetMatch
c_Content = Replace(c_Content, SetSubMatch.Value, s, 1, -1, 1)
Next
End If
Set SetMatch = Nothing
End Property
End Class
Class template
Private c_Char, c_Path, c_FileName, c_Content, c_PageUrl, c_CurrentPage, c_PageStr, ReplacePageStr
Private TagName
' ***************************************
' 设置编码
' ***************************************
Public Property Let Char(ByVal Str)
c_Char = Str
End Property
Public Property Get Char
Char = c_Char
End Property
' ***************************************
' 设置模板文件夹路径
' ***************************************
Public Property Let Path(ByVal Str)
c_Path = Str
End Property
Public Property Get Path
Path = c_Path
End Property
' ***************************************
' 设置模板文件名
' ***************************************
Public Property Let FileName(ByVal Str)
c_FileName = Str
End Property
Public Property Get FileName
FileName = c_FileName
End Property
' ***************************************
' 获得模板文件具体路径
' ***************************************
Public Property Get FilePath
If Len(Path) > 0 Then Path = Replace(Path, "\", "/")
If Right(Path, 1) <> "/" Then Path = Path & "/"
FilePath = Path & FileName
End Property
' ***************************************
' 设置分页URL
' ***************************************
Public Property Let PageUrl(ByVal Str)
c_PageUrl = Str
End Property
Public Property Get PageUrl
PageUrl = c_PageUrl
End Property
' ***************************************
' 设置分页 当前页
' ***************************************
Public Property Let CurrentPage(ByVal Str)
c_CurrentPage = Str
End Property
Public Property Get CurrentPage
CurrentPage = c_CurrentPage
End Property
' ***************************************
' 输出内容
' ***************************************
Public Property Get Flush
Response.Write(c_Content)
End Property
' ***************************************
' 类初始化
' ***************************************
Private Sub Class_Initialize
TagName = "pjblog"
c_Char = "UTF-8"
ReplacePageStr = Array("", "")
End Sub
' ***************************************
' 过滤冲突字符
' ***************************************
Private Function doQuote(ByVal Str)
doQuote = Replace(Str, Chr(34), """)
End Function
' ***************************************
' 类终结
' ***************************************
Private Sub Class_Terminate
End Sub
' ***************************************
' 加载文件方法
' ***************************************
Private Function LoadFromFile(ByVal cPath)
Dim obj
Set obj = Server.CreateObject("ADODB.Stream")
With obj
.Type = 2
.Mode = 3
.Open
.Charset = Char
.Position = .Size
.LoadFromFile Server.MapPath(cPath)
LoadFromFile = .ReadText
.close
End With
Set obj = Nothing
End Function
' ***********************************************
' 获取正则匹配对象
' ***********************************************
Public Function GetMatch(ByVal Str, ByVal Rex)
Dim Reg, Mag
Set Reg = New RegExp
With Reg
.IgnoreCase = True
.Global = True
.Pattern = Rex
Set Mag = .Execute(Str)
If Mag.Count > 0 Then
Set GetMatch = Mag
Else
Set GetMatch = Server.CreateObject("Scripting.Dictionary")
End If
End With
Set Reg = nothing
End Function
' ***************************************
' 打开文档
' ***************************************
Public Sub open
c_Content = LoadFromFile(FilePath)
End Sub
' ***************************************
' 缓冲执行
' ***************************************
Public Sub Buffer
c_Content = GridView(c_Content)
Call ExecuteFunction
End Sub
' ***************************************
' GridView
' ***************************************
Private Function GridView(ByVal o_Content)
Dim Matches, SubMatches, SubText
Dim Attribute, Content
Set Matches = GetMatch(o_Content, "\<" & TagName & "\:(\d+?)(.+?)\>([\s\S]+?)<\/" & TagName & "\:\1\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
Attribute = SubMatches.SubMatches(1) ' kocms
Content = SubMatches.SubMatches(2) ' <Columns>...</Columns>
SubText = Process(Attribute, Content) ' 返回所有过程执行后的结果
o_Content = Replace(o_Content, SubMatches.value, "<" & SubText(2) & SubText(0) & ">" & SubText(1) & "</" & SubText(2) & ">", 1, -1, 1) ' 替换标签变量
Next
End If
Set Matches = Nothing
If Len(ReplacePageStr(0)) > 0 Then ' 判断是否标签变量有值,如果有就替换掉.
o_Content = Replace(o_Content, ReplacePageStr(0), ReplacePageStr(1), 1, -1, 1)
ReplacePageStr = Array("", "") ' 替换后清空该数组变量
End If
GridView = o_Content
End Function
' ***************************************
' 确定属性
' ***************************************
Private Function Process(ByVal Attribute, ByVal Content)
Dim Matches, SubMatches, Text
Dim MatchTag, MatchContent
Dim datasource, Name, Element, page, id
datasource = "" : Name = "" : Element = "" : page = 0 : id = ""
Set Matches = GetMatch(Attribute, "\s(.+?)\=\""(.+?)\""")
If Matches.Count > 0 Then
For Each SubMatches In Matches
MatchTag = SubMatches.SubMatches(0) ' 取得属性名
MatchContent = SubMatches.SubMatches(1) ' 取得属性值
If Lcase(MatchTag) = "name" Then Name = MatchContent ' 取得name属性值
If Lcase(MatchTag) = "datasource" Then datasource = MatchContent' 取得datasource属性值
If Lcase(MatchTag) = "element" Then Element = MatchContent ' 取得element属性值
If Lcase(MatchTag) = "page" Then page = MatchContent ' 取得page属性值
If Lcase(MatchTag) = "id" Then id = MatchContent ' 取得id属性值
Next
If Len(Name) > 0 And Len(MatchContent) > 0 Then
Text = Analysis(datasource, Name, Content, page, id) ' 执行解析属性
If Len(datasource) > 0 Then Attribute = Replace(Attribute, "datasource=""" & datasource & """", "")
If page > 0 Then Attribute = Replace(Attribute, "page=""" & page & """", "")
Attribute = Replace(Attribute, "name=""" & Name & """", "", 1, -1, 1)
Attribute = Replace(Attribute, "element=""" & Element & """", "", 1, -1, 1)
Process = Array(Attribute, Text, Element)
Else
Process = Array(Attribute, "", "div")
End If
Else
Process = Array(Attribute, "", "div")
End If
Set Matches = Nothing
End Function
' ***************************************
' 解析
' ***************************************
Private Function Analysis(ByVal id, ByVal Name, ByVal Content, ByVal page, ByVal PageID)
Dim Data
Select Case Lcase(Name) ' 选择数据源
Case "loop" Data = DataBind(id, Content, page, PageID)
Case "for" Data = DataFor(id, Content, page, PageID)
End Select
Analysis = Data
End Function
' ***************************************
' 绑定数据源
' ***************************************
Private Function DataBind(ByVal id, ByVal Content, ByVal page, ByVal PageID)
Dim Text, Matches, SubMatches, SubText
Execute "Text = " & id & "(1)" ' 加载数据源
Set Matches = GetMatch(Content, "\<Columns\>([\s\S]+)\<\/Columns\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
SubText = ItemTemplate(SubMatches.SubMatches(0), Text, page, PageID)' 执行模块替换
Content = Replace(Content, SubMatches.value, SubText, 1, -1, 1)
Next
DataBind = Content
Else
DataBind = ""
End If
Set Matches = Nothing
End Function
' ***************************************
' 匹配模板实例
' ***************************************
Private Function ItemTemplate(ByVal TextTag, ByVal Text, ByVal page, ByVal PageID)
Dim Matches, SubMatches, SubMatchText
Dim SecMatch, SecSubMatch
Dim i, TempText
Dim TextLen, TextLeft, TextRight
Set Matches = GetMatch(TextTag, "\<ItemTemplate\>([\s\S]+)\<\/ItemTemplate\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
SubMatchText = SubMatches.SubMatches(0)
' ---------------------------------------------
' 循环嵌套开始
' ---------------------------------------------
SubMatchText = GridView(SubMatchText)
' ---------------------------------------------
' 循环嵌套结束
' ---------------------------------------------
If UBound(Text, 1) = 0 Then
TempText = ""
Else
TempText = ""
' -----------------------------------------------
' 开始分页
' -----------------------------------------------
If Len(page) > 0 And page > 0 Then
If Len(CurrentPage) = 0 Or CurrentPage = 0 Then CurrentPage = 1
TextLen = UBound(Text, 2)
TextLeft = (CurrentPage - 1) * page
TextRight = CurrentPage * page - 1
If TextLeft < 0 Then TextLeft = 0
If TextRight > TextLen Then TextRight = TextLen
c_PageStr = MultiPage(TextLen + 1, page, CurrentPage, PageUrl, "float:right", "", False)
If Int(Len(c_PageStr)) > 0 Then
ReplacePageStr = Array("<page:" & Trim(PageID) & "/>", c_PageStr)
Else
ReplacePageStr = Array("<page:" & Trim(PageID) & "/>", "")
End If
Else
TextLeft = 0
TextRight = UBound(Text, 2)
End If
For i = TextLeft To TextRight
TempText = TempText & ItemReSec(i, SubMatchText, Text) ' 加载模板内容
Next
End If
Next
ItemTemplate = TempText
Else
ItemTemplate = ""
End If
Set Matches = Nothing
End Function
' ***************************************
' 替换模板字符串
' ***************************************
Private Function ItemReSec(ByVal i, ByVal Text, ByVal Arrays)
Dim Matches, SubMatches
Set Matches = GetMatch(Text, "\$(\d+?)")
If Matches.Count > 0 Then
For Each SubMatches In Matches
Text = Replace(Text, SubMatches.value, doQuote(Arrays(SubMatches.SubMatches(0), i)), 1, -1, 1) '执行替换
Next
ItemReSec = Text
Else
ItemReSec = ""
End If
Set Matches = Nothing
End Function
' ***************************************
' 全局变量函数
' ***************************************
Private Sub ExecuteFunction
Dim Matches, SubMatches, Text, ExeText
Set Matches = GetMatch(c_Content, "\<function\:([0-9a-zA-Z_\.]*?)\((.*?)\""(.+?)\""(.*?)\)\/\>")
If Matches.Count > 0 Then
For Each SubMatches In Matches
Text = SubMatches.SubMatches(0) & "(" & SubMatches.SubMatches(1) & """" & SubMatches.SubMatches(2) & """" & SubMatches.SubMatches(3) & ")"
Execute "ExeText=" & Text
c_Content = Replace(c_Content, SubMatches.value, ExeText, 1, -1, 1)
Next
End If
Set Matches = Nothing
End Sub
' ***************************************
' 普通替换全局标签
' ***************************************
Public Property Let Sets(ByVal t, ByVal s)
Dim SetMatch, Bstr, SetSubMatch
Set SetMatch = GetMatch(c_Content, "(\<Set\:([0-9a-zA-Z_\.]*?)\(((.*?)" & t & "(.*?))?\)\/\>)")
If SetMatch.Count > 0 Then
For Each SetSubMatch In SetMatch
Execute "Bstr = " & SetSubMatch.SubMatches(1) & "(" & SetSubMatch.SubMatches(3) & """" & s & """" & SetSubMatch.SubMatches(4) & ")"
c_Content = Replace(c_Content, SetSubMatch.Value, Bstr, 1, -1, 1)
Next
End If
Set SetMatch = Nothing
Set SetMatch = GetMatch(c_Content, "(\<Set\:" & t & "\/\>)")
If SetMatch.Count > 0 Then
For Each SetSubMatch In SetMatch
c_Content = Replace(c_Content, SetSubMatch.Value, s, 1, -1, 1)
Next
End If
Set SetMatch = Nothing
End Property
End Class
标签:
模板引擎
帝王谷资源网 Design By www.wdxyy.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
帝王谷资源网 Design By www.wdxyy.com
暂无评论...
更新日志
2024年12月25日
2024年12月25日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]