剛寫的應用於某軟體的全文檢索程式

2021-03-31 08:56:59 字數 3698 閱讀 6163

keyword=trim(request("okey"))

stype=trim(request("otype"))

if keyword="" or keyword="關鍵字…" then

response.write "請輸入關鍵字!"

response.end()

end if

if stype="" then

response.write "請選擇查詢資訊類別"

response.end()

end if

dim ftstable '要查詢資訊的儲存表名

dim ftsfolder '要查詢資訊的儲存資料夾 

if stype="1" then

ftstable="tb_bzxx"

ftsfolder=fjroot

elseif stype="2" then

ftstable="tb_other"

ftsfolder=fjroot_other

elseif stype="3" then

ftstable="tb_info"

ftsfolder=fjroot_info

else

response.write "出錯了!"

response.end

end if

sql=""

if stype="1" then

sql="select bz_xuhao as xuhao,bz_name as bname,bz_code as bcode,bz_htm as htm from " & ftstable

elseif stype="2" then

sql="select p_xuhao as xuhao,p_name as bname,p_code as bcode,p_htm as htm from " & ftstable

elseif stype="3" then

sql="select info_id as xuhao,info_htm,info_type as htm from " & ftstable

else

response.write "出錯了!"

response.end

end if

call openconn() ' 開啟資料庫連線

set fso=server.createobject("scripting.filesystemobject")

set rs=server.createobject("adodb.recordset")

dim opattern

opattern="||

"'如果是查詢第三種資訊(其他資訊),則先將所有的資訊類別取出來,放到陣列中。

dim infotype()

if stype="3" then

rs.open "select type_id,type_name from tb_info_type order by type_id desc",adocon,3,1

if rs.recordcount<=0 then

closers rs

call closeconn

response.write "出錯了!"

response.end()

end if

redim infotype(clng(rs(0)))

do while not rs.eof

infotype(clng(rs(0)))=rs(1)

rs.movenext

loop

rs.close()

end if

align= "center" style= "color:#000080" > 標準資訊系統全文檢索結果

關鍵字: style= "color:#ff0000" > <%=keyword%>

width= "600" >

style= "font-size:12;color:000000;line-height:1.8" > <%

'進行檢索

rs.open sql,adocon,3,1

if rs.recordcount>0 then

scount=0

do while not rs.eof

findpos=0

htm=rs("htm")

if htm<>"" then

vpath=ftsfolder & "/" & rs("xuhao") & "/" & htm

if fso.fileexists(filepath) then

set ofile=fso.getfile(filepath)

set ofilestream=ofile.openastextstream(1)

ofileinfo=""

if not ofilestream.atendofstream then

ofileinfo=filterhtml(filterbr(trim(ofilestream.readall)))

if ofileinfo<>"" then

findpos=instr(1,ofileinfo,keyword,1)

'查到了資料,需要顯示

if findpos>0 then

response.write ""

if stype="1" or stype="2" then

response.write "" & rs("bname") & " ( " & rs("bcode") & " )  

"else

response.write "" & infotype(clng(rs("info_type"))) & "  

"end if

if findpos>50 then

response.write "…" & replace(mid(ofileinfo,findpos-50,200),keyword,"" & keyword & "",1,-1,1) & "…"

else

response.write replace(mid(ofileinfo,1,200),keyword,"" & keyword & "",1,-1,1)& "…"

end if

response.write "

"scount=scount+1

end if

end if

end if

end if

end if

rs.movenext

loop

end if

response.write "     共搜尋到 " & scount & " 條資訊!"

'過濾掉文字中的html標記和空格

function filterhtml(str)

dim re

set re=new regexp

re.ignorecase =true

re.global=true

re.pattern="<(.[^>]*)>| "

str=re.replace(str,"")

set re=nothing

filterhtml=str

end function

function filterbr(str)

filterbr=replace(str,vbcrlf," ")

filterbr=replace(str,"

"," ")

end function

應用於Python的vim配置點滴

應用於python的vim配置點滴 python是我最喜歡的程式語言,而vim也是我最常用的編輯器,所以更好的配置vim來編輯python源程式是很有必要的。下面談談偶學來的一點配置技巧。by gashero 以下的大部分配置都是通過修改 vimrc檔案來實現的,在windows下它存在於vim的安...

Starling在應用於移動裝置開發時的注意事項

最近一段時間,使用了starling作為移動平臺上的ios遊戲開發,發現starling在應用於移動裝置時,有幾點重要的注意事項,如果沒有躲過,很容易耗費很長的時間徘徊而不知其解,現總結如下 1.打包問題 對於移動裝置的stage3d支援是在air 3.2中實現的。flash builder4.6內...

SQL應用於簡單的資料分析工作

從事資料分析工作基本上離不開sql的使用,如果不知道如何寫sql,很多資料清洗,包括分析都會困難。一 sql語言在資料分析行業的學習知識框架 在計算機行業,工程師基本的業務也就是對資料的增刪查改,在資料分析行業也不例外。資料分析行業,匯入資料,清洗資料,用sql是可以完全 實現的,但 是如果是要用s...

Zortrax的藝術!可澆鑄樹脂應用於珠寶創造!

摘要 zortrax與領先的珠寶鑄造材料製造商bluecast合作,為zortrax inkspire引入了三種用於珠寶應用的新型可澆鑄樹脂。這些新型樹脂旨在替代熔模鑄造中的蠟,並在同一過程中使用相同的工具集進行工作。三種新樹脂中的每一種都經過微調,可分別用於珠寶設計的三種主要樣式之一 分別為歐式風...

virtual應用於建構函式和解構函式的用途

virtual的應用實現了多型,那麼對於類中的兩個特殊的函式,建構函式和解構函式能不能用虛擬函式?1 建構函式不能設計為虛擬函式 如果類中定義了虛擬函式,則會生成虛表,那麼為了呼叫這個虛擬函式就要通過虛表來呼叫。可是,建構函式比較特殊,建構函式是在物件完全構造之前執行,那麼就導致物件還沒有例項化,那...