会员登录
用户名:
密  码:
 海岸线公告
    为更好的服务广大用户,厦门海岸线网站在版面和功能上进行升级,欢迎各位朋友给我们提出你宝贵的意见!(可以将你的意见发送到chifengming@163.com或者加QQ:53938519)  
 国内推广
    没有资金的投入,很难做推广而且在国内,这些类型的品牌很多,那要看生产商能不能...  
网络实名
中国搜索联盟
百度竞价排名
新浪网站推广
搜狐网站推广
网易网站推广
 国外推广
    企业既然上网,就要充分利用互联网的特点与优势,采用互联网全新的宣传营销模式,不囿开传统媒介宣传...  
Google
Lycos
Yahoo国外推广
日本推广
 软件推广
    本站开发销售各类推广软件信息发布软件,网站推广软件,网站推广软件网络推广软件推广...  
短信群发软件
信息发布软件
网站推广软件
仓库管理软件
海岸信息



标题:实现支持逻辑搜索/单词搜索/词组搜索+支持OR/AND关键字的VBS CLASS
CLASS功能.替换传入的字符串成为SQL语句Where关键字后面的表达式:

词语搜索 [例如: 小明]

词组搜索
词组里面每一个词都将被检索
例如: 小强1 小名1 小强强 小小强

逻辑搜索
支持 And 和 Or 运算符.
例如: 小明 And 小强 And 小小强

复合条件:
例如:(小小明 Or 小明) And (小强 Or 小小强)
例如:(小小明 Or 小名) And 小小强
例如: ROOT1 And (广东人 Or 北京人)


-----------------------------------------------------------
Class CreateQueryString

Public objReg
Public intStart
Public strField
Private objNode2
Private strText

Public Property Let QueryString( strValue )
strText = Lcase( strValue )
End Property

Private Sub Class_Initialize()
Set objReg = new RegExp
strField = "(标题+文章)"
End Sub

Private Sub Class_Terminate()
Set objReg = Nothing
End Sub

Public Default Function GetText()
Dim blnRes
Dim strSky
With objReg
.IgnoreCase = true
.Global = True
.Pattern = "\s"
blnRes = .Test( strText )
End With
If (Not blnRes) Then
intStart = 2
GetText = strField & " like '%" & strText & "%'"
Else
objReg.Pattern = "\sand|\sor"
blnRes = objReg.Test( strText )
If blnRes Then
strSky = check()
If strSky = False Then
GetText = wahaha()
Else
GetText = strSky
End if
Else
GetText = wahaha()
End if
End If
End Function

Private Function wahaha()
Dim strTer
Dim strLikes
Dim strOrs
Dim strI
Dim objRe
strTer = ""
strLikes = " or (" & strField & " like '%"
strOrs = "%')"
objReg.Pattern = "(\S*\S)"
Set objRe = objReg.Execute(strText)
For Each strI In objRe
strTer = strTer & strLikes & strI & strOrs
Next
wahaha = Mid( strTer , 4 )
intStart = 3
End Function

Private Function CheckYes( strMode , intCount)
Dim objNode1
objReg.Pattern = strMode
Set objNode1 = objReg.Execute( strText )
If objNode1.Count < 1 Then
CheckYes = True
Else
Set objNode2 = objNode1( 0 )
If objNode2.subMatches.Count < intCount Then
CheckYes = True
End If
End If
End Function

Private Function ORAND()
Dim strSSS
Dim strCCC
Dim strAAA
Dim a143
Dim i
Dim objN
Dim blnTru
Dim blnBBB
strSSS = "(" & strField & " like '%"
strCCC = "%')"
strAAA = ""
n1 = 0
blnTru = True
blnBBB = True

objReg.Pattern = "(\S*\S)"
Set objN = objReg.Execute( strText )
a143 = objN.Count - 1
If (objN.Item( a143 ) = "and") Or (objN.Item( a143 ) = "or") Then
ORAND = False
Exit Function
End if
For Each i In objN
If blnTru Then
If (i <> "and") And (i <> "or") Then
blnTru = False
strAAA = strAAA & strSSS & i & strCCC
Else
blnBBB = false
Exit for
End if
Else
If (i = "and") Or (i = "or") Then
blnTru = True
strAAA = strAAA & i
Else
blnBBB = False
Exit For
End if
End if
Next
If (Not blnBBB) Then
ORAND = False
Else
ORAND = strAAA
intStart = 4
End if
End Function



Private Function check()
Dim re
Dim re1
Dim re2
Dim re3
Dim str
Dim str1
Dim a1
Dim a2
Dim a3
Dim a4
str = strField & " like '%"
str1 = "%'"
With objReg
.Pattern = "^\(.+\)\s(and|or)\s"
re = .Test( strText )
.Pattern = "\s(and|or)\s\(.+\)$"
re3 = .Test( strText )
End With
If re And re3 Then
If CheckYes( "^\((\S*\S) (\bor\b|\band\b) (\S*\S)\) (and|or) \((\S*\S) (\bor\b|\band\b) (\S*\S)\)$" , 6 ) Then
check = False
Else
With objNode2
a1 = .submatches(0)
a2 = .submatches(2)
a3 = .submatches(4)
a4 = .submatches(6)
check = "(" & str & a1 & str1 & " " & .submatches(1) & " " & str & a2 & str1 & ") " &_
.submatches(3) & " (" & str & a3 & str1 & " " & .submatches(5) & " " & str & a4 & str1 & ")"
intStart = 5


日期:2011-10-25


域名查询
 
.com .net
.cn .com.cn
.net.cn .info
.biz .gov.cn
.org.cn .cc
新闻资讯
 
 
 
 
客户中心
会员管理 诚征代理
客户投诉 付款方式
技术支持 人才招聘
常见问题    
友情链接
==厦门海岸线网络==
==厦门软件开发==
==海岸线OA办公软件==
==厦门OA办公软件==
==海岸线进销存软件==
==厦门进销存软件==
==厦门iphone软件==
==龙岩软件开发==
==海岸线三维动画==
==厦门三维动画==
==中国古董网==
==中国树苗网==
==厦门化妆品网==
==中国冬笋批发网==
==棒球网==
首  页 | 关于我们 | 人才招聘 | 付款方式 | 联系我们 | 客户中心 | 网站地图
地址:厦门市软件园二期 E-mail:chifengming@163.com 邮编:361000
厦门海岸线网络科技有限公司 版权所有 CopyRight WWW.COAST-LINE.CN,All Right Reserved.
电话:0592-8962864 5839031 5839032 5839033 5839034 传真:0592-3237389 手机:13616028684 QQ1:53938519 QQ2:418143918