搜索
熱搜: 活動 交友 discuz
查看: 3629|回復: 0
打印 上一主題 下一主題

[教學] ASP函數庫

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-14 04:56:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. ASP函數庫
  2. <%
  3. ''''                   函數目錄                    ''''
  4. ''''-----------------------------------------------''''
  5. '''' 函數ID:0001[截字符串]                        ''''
  6. '''' 函數ID:0002[過濾html]                        ''''
  7. '''' 函數ID:0003[打開任意資料表並顯示表結構及內容]''''
  8. '''' 函數ID:0004[讀取兩種路徑]                    ''''
  9. '''' 函數ID:0005[測試某個檔案存在否]              ''''
  10. '''' 函數ID:0006[刪除某個檔案]                    ''''
  11. '''' 函數ID:0007[判斷目錄是否存在]                ''''
  12. '''' 函數ID:0008[創建目錄]                        ''''
  13. '''' 函數ID:0009[刪除目錄]                        ''''
  14. '''' 函數ID:0010[指定目錄的檔案列表]              ''''
  15. '''' 函數ID:0011[指定目錄的目錄列表]              ''''
  16. '''' 函數ID:0012[創建文本檔案]                    ''''
  17. '''' 函數ID:0013[讀取文本檔案]                    ''''
  18. '''' 函數ID:0014[檢測ID是否為數字類型]            ''''
  19. '''' 函數ID:0015[正則表達式測試]                  ''''
  20. '''' 函數ID:0016[獲得執行程序的名稱]              ''''
  21. '''' 函數ID:0017[讀取用戶IP地址信息]              ''''
  22. '''' 函數ID:0018[上傳檔案到指定目錄並改檔案名稱]  ''''
  23. '''' 函數ID:0019[過濾HTML腳本]                    ''''
  24. '''' 函數ID:0020[創建MsAccess資料庫]              ''''
  25. '''' 函數ID:0021[創建MsSQLServer資料庫]           ''''
  26. '''' 函數ID:0022[通過JMAIL發信]                   ''''
  27. '''' 函數ID:0023[測試組件是否安裝]                ''''
  28. '''' 函數ID:0024[上傳檔案的窗口]                  ''''
  29. '''' 函數ID:0025[取得資料庫鏈接字串]              ''''
  30. '''' 函數ID:0026[取得multipart/form-data形式上傳檔案]
  31. '''' 函數ID:0027[保存或查看上傳到資料庫中的資料,帶調用上傳窗口]
  32. '''' 函數ID:0028[取得圖像的類型|寬|高]            ''''
  33. '''' 函數ID:0029[將本地檔案進行二進制分析,並保存到服務器的指定目錄下]
  34. '''' 函數ID:0030[將本地資料表或庫上傳並導入到服務器資料庫的表中]
  35. '''' 函數ID:0031[返回服務器信息]                  ''''
  36. '''' 函數ID:0032[產生20位長度的唯一標識ID]        ''''
  37. '''' 函數ID:0033[用於左填充指定數量的字符]        ''''
  38. '''' 函數ID:0034[用於右填充指定數量的字符]        ''''
  39. '''' 函數ID:0035[格式化時間(顯示)]                ''''
  40. '''' 函數ID:0036[測試資料庫是否存在]              ''''
  41. '''' 函數ID:0037[測試資料庫中的表是否存在]        ''''
  42. '''' 函數ID:0038[線上HTML編輯器]                  ''''
  43. '''' 函數ID:0039[判斷是否奇數]                    ''''
  44. '''' 函數ID:0040[生成驗證碼圖像BMP]               ''''
  45. '''' 函數ID:0041[生成隨機密碼]                    ''''
  46. '''' 函數ID:0042[字符加解密]                      ''''
  47. '''' 函數ID:0043[解密字符加解密]                  ''''
  48. '''' 函數ID:0044[創建資料表]                      ''''
  49. '''' 函數ID:0045[在資料庫中插入字段值]            ''''
  50. '''' 函數ID:0046[Cookie防亂碼寫入時用]            ''''
  51. '''' 函數ID:0047[Cookie防亂碼讀出時用]            ''''
  52. '''' 函數ID:0048[檢測用戶名和密碼是否正確]        ''''
  53. '''' 函數ID:0049[生成時間的整數]                  ''''
  54. '''' 函數ID:0050[獲得欄目的所有子欄目字符串並用","隔開]
  55. ''''                                               ''''
  56. ''''                                               ''''
  57. ''''                                               ''''
  58. '**************************************************''''
  59. '函數ID:0001[截字符串]
  60. '函數名:SubstZFC
  61. '作 用:截字符串,漢字一個算兩個字符,英文算一個字符
  62. '參 數:str   ----原字符串
  63. '       strlen ----截取長度
  64. '返回值:截取後的字符串
  65. '**************************************************
  66. Public Function SubstZFC(ByVal str、ByVal strlen)
  67.     If str = "" Then
  68.         SubstZFC = ""
  69.         Exit Function
  70.     End If
  71.     Dim l、t、c、i、strTemp
  72.     str = Replace(Replace(Replace(Replace(str、" "、" ")、"""、Chr(34))、">"、">")、"<"、"<")
  73.     l = Len(str)
  74.     t = 0
  75.     strTemp = str
  76.     strlen = CLng(strlen)
  77.     For i = 1 To l
  78.         c = Abs(Asc(Mid(str、i、1)))
  79.         If c > 255 Then
  80.             t = t + 2
  81.         Else
  82.             t = t + 1
  83.         End If
  84.         If t >= strlen Then
  85.             strTemp = Left(str、i)
  86.             Exit For
  87.         End If
  88.     Next
  89.     SubstZFC = Replace(Replace(Replace(Replace(strTemp、" "、" ")、Chr(34)、""")、">"、">")、"<"、"<")
  90. End Function
  91. '**************************************************
  92. '函數ID:0002[過濾html]
  93. '函數名:GlHtml
  94. '作 用:過濾html 元素
  95. '參 數:str ---- 要過濾字符
  96. '返回值:沒有html 的字符
  97. '**************************************************
  98. Public Function GlHtml(ByVal str)
  99.     If IsNull(str) Or Trim(str) = "" Then
  100.         GlHtml = ""
  101.         Exit Function
  102.     End If
  103.     Dim re
  104.     Set re = New RegExp
  105.     re.IgnoreCase = True
  106.     re.Global = True
  107.     re.Pattern = "(\<.[^\<]*\>)"
  108.     str = re.Replace(str、" ")
  109.     re.Pattern = "(\<\/[^\<]*\>)"
  110.     str = re.Replace(str、" ")
  111.     Set re = Nothing
  112.     str = Replace(str、"'"、"")
  113.     str = Replace(str、Chr(34)、"")
  114.     GlHtml = str
  115. End Function
  116. '**************************************************
  117. '函數ID:0003[打開任意資料表並顯示表結構及內容]
  118. '函數名:OpOtherDB
  119. '作 用:打開任意資料表並顯示表結構及內容
  120. '參 數:DBtheStr   ---- 要打開表的資料庫鏈接字串
  121. '參 數:Opentdname ---- 要打開表名
  122. '返回值:顯示表結構及內容
  123. '**************************************************
  124. Public Function OpOtherDB(ByVal DBtheStr,ByVal Opentdname)
  125.   Response.write "<table border='0' width='100%' cellspacing='0' cellpadding='0'>" & vbCrlf
  126.   Set Opdb_Conn=server.createobject("ADODB.Connection")
  127.   Set Opdb_Rs  =server.createobject("ADODB.Recordset")
  128.   Opdb_Conn.open DBtheStr
  129.   Opdb_sql_str="select * from "&Opentdname
  130.   Opdb_Rs.open Opdb_Sql_Str,Opdb_Conn,1,1
  131.   Nfieldnumber=Opdb_Rs.Fields.count
  132.   If Nfieldnumber >0 then
  133.      Response.write "<tr>" & vbCrlf
  134.      For i=0 to (Nfieldnumber-1)
  135.          Response.write "<td style='border-style: ridge; border-width: 1' bgcolor='#E1E1E1' valign='middle' align='center'>"
  136.          Response.write Trim(Opdb_Rs.Fields(i).Name)
  137.          Response.write "</td>" & vbCrlf
  138.      Next
  139.      temptbi=0
  140.      Do While Not Opdb_Rs.Eof
  141.         Response.write "</tr>" & vbCrlf
  142.         For i=0 to (Nfieldnumber-1)
  143.             If (temptbi<2) Then
  144.                 Response.write "<td style='border-style: ridge; border-width: 1' bgcolor='#F6F6F6' valign='middle'>"
  145.                 Response.write Trim(Opdb_Rs.Fields(i))
  146.                 Response.write "</td>" & vbCrlf
  147.                 temptbi=temptbi+1
  148.             Else
  149.                 Response.write "<td style='border-style: ridge; border-width: 1' valign='middle'>"
  150.                 Response.write Trim(Opdb_Rs.Fields(i))
  151.                 Response.write "</td>" & vbCrlf
  152.                 If temptbi>=3 Then
  153.                    temptbi=0
  154.                 Else
  155.                    temptbi=temptbi+1
  156.                 End If
  157.             End If
  158.         Next
  159.         Opdb_Rs.MoveNext
  160.         Response.write "</tr>" & vbCrlf
  161.      Loop
  162.   End If
  163.   Opdb_Rs.Close
  164.   Opdb_Conn.Close
  165.   Set Opdb_Rs = Nothing
  166.   Set Opdb_Conn=Nothing
  167.   Response.write "</table>" & vbCrlf
  168. End function
  169. '**************************************************
  170. '函數ID:0004[讀取兩種路徑]
  171. '函數名:Readsyspath
  172. '作 用:讀取路徑
  173. '參 數:lx   ----  0:服務器IP加路徑 1:服務物理路徑
  174. '返回值:路徑字串
  175. '**************************************************
  176. Public Function Readsyspath(ByVal lx)
  177.   Dim templj,aryTemp,newpath
  178.   templj=""
  179.   newpath=""
  180.   If lx=0 Then
  181.      templj="[url=http://]http://"&Request("SERVER_NAME")&Request("PATH_INFO[/url]")
  182.      aryTemp = Split(templj,"/")
  183.   Else
  184.      templj=Request("PATH_TRANSLATED")
  185.      aryTemp = Split(templj,"\")
  186.   End If
  187.   For i = LBound(aryTemp) To UBound(aryTemp)-1
  188.       If lx=0 Then
  189.          newpath=newpath&aryTemp(i)&"/"
  190.       Else
  191.          newpath=newpath&aryTemp(i)&"\"
  192.       End If
  193.   Next
  194.   Readsyspath=newpath
  195. End Function
  196. '**************************************************
  197. '函數ID:0005[測試某個檔案存在否]
  198. '函數名:CheckFile
  199. '作 用:測試某個檔案存在否
  200. '參 數:ckFilename ----  被測試的檔案名(包括路徑)
  201. '返回值:檔案存在返回True,否則False
  202. '**************************************************
  203. Public Function CheckFile(ByVal ckFilename)
  204.   Dim M_fso
  205.   CheckFile=False
  206.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  207.   If M_fso.FileExists(ckFilename) Then
  208.      CheckFile=True
  209.   End If
  210.   Set M_fso = Nothing
  211. End Function
  212. '**************************************************
  213. '函數ID:0006[刪除某個檔案]
  214. '函數名:DelFile
  215. '作 用:刪除某個檔案
  216. '參 數:dFilename ----  被刪除的檔案名(包括路徑)
  217. '返回值:檔案刪除返回True,否則False
  218. '**************************************************
  219. Public Function DelFile(ByVal dFilename)
  220.   Dim M_fso
  221.   DelFile=False
  222.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  223.   If M_fso.FileExists(dFilename) Then
  224.      M_fso.DeleteFile(dFilename)
  225.      DelFile=True
  226.   End If
  227.   Set M_fso = Nothing
  228. End Function
  229. '**************************************************
  230. '函數ID:0007[判斷目錄是否存在]
  231. '函數名:CheckDir
  232. '作 用:判斷目錄是否存在
  233. '參 數:ckDirname ----  目錄名(包括路徑)
  234. '返回值:目錄存在返回True,否則False
  235. '**************************************************
  236. Public Function CheckDir(ByVal ckDirname)
  237.   Dim M_fso
  238.   CheckDir=False
  239.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  240.   If (M_fso.FolderExists(ckDirname)) Then
  241.      CheckDir=True
  242.   End If
  243.   Set M_fso = Nothing
  244. End Function
  245. '**************************************************
  246. '函數ID:0008[創建目錄]
  247. '函數名:CreateDir
  248. '作 用:創建目錄
  249. '參 數:crDirname ----  目錄名(包括路徑)
  250. '返回值:目錄創建成功返回True,否則False
  251. '**************************************************
  252. Public Function CreateDir(ByVal crDirname)
  253.   Dim M_fso
  254.   CreateDir=False
  255.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  256.   If (M_fso.FolderExists(crDirname)) Then
  257.      CreateDir=False
  258.   Else
  259.      M_fso.CreateFolder(crDirname)
  260.      CreateDir=True
  261.   End If
  262.   Set M_fso = Nothing
  263. End Function
  264. '**************************************************
  265. '函數ID:0009[刪除目錄]
  266. '函數名:DelDir
  267. '作 用:刪除目錄
  268. '參 數:DlDirname ----  目錄名(包括路徑)
  269. '返回值:目錄刪除成功返回True,否則False
  270. '**************************************************
  271. Public Function DelDir(ByVal DlDirname)
  272.   Dim M_fso
  273.   DelDir=False
  274.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  275.   If (M_fso.FolderExists(DlDirname)) Then
  276.       M_fso.DeleteFolder(DlDirname)
  277.       DelDir=True
  278.   End If
  279.   Set M_fso = Nothing
  280. End Function
  281. '**************************************************
  282. '函數ID:0010[指定目錄的檔案列表]
  283. '函數名:ListFiles
  284. '作 用:指定目錄的檔案列表
  285. '參 數:Dirname ----  目錄名(包括路徑)
  286. '返回值:檔案列表字符串,之間用「|」相隔
  287. '**************************************************
  288. Public Function ListFiles(ByVal Dirname)
  289.   Dim M_fso,fNS,fLS,Fnames,FnamesN
  290.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  291.   If (M_fso.FolderExists(Dirname)) Then
  292.      Set fNS = M_fso.GetFolder(Dirname)
  293.      Set fLS=fNS.Files
  294.      For Each FnamesN in fLS
  295.          Fnames=Fnames & FnamesN.name
  296.          Fnames=Fnames & "|"
  297.      Next
  298.      ListFiles=Fnames
  299.   End If
  300.   Set M_fso = Nothing
  301. End Function
  302. '**************************************************
  303. '函數ID:0011[指定目錄的目錄列表]
  304. '函數名:ListDirs
  305. '作 用:指定目錄的目錄列表
  306. '參 數:Dirname ----  目錄名(包括路徑)
  307. '返回值:目錄列表字符串,之間用「|」相隔
  308. '**************************************************
  309. Public Function ListDirs(ByVal Dirname)
  310.   Dim M_fso,fNS,fLS,Fnames,FnamesN
  311.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  312.   If (M_fso.FolderExists(Dirname)) Then
  313.      Set fNS = M_fso.GetFolder(Dirname)
  314.      Set fLS=fNS.SubFolders
  315.      For Each FnamesN in fLS
  316.          Fnames=Fnames & FnamesN.name
  317.          Fnames=Fnames & "|"
  318.      Next
  319.      ListDirs=Fnames
  320.   End If
  321.   Set M_fso = Nothing
  322. End Function
  323. '**************************************************
  324. '函數ID:0012[創建文本檔案]
  325. '函數名:WritTextFile
  326. '作 用:創建文本檔案
  327. '參 數:Fname      ----  文本檔案名稱(包括路徑)
  328. '參 數:WritString ----  寫入的內容
  329. '返回值:創建成功返回True,否則False
  330. '**************************************************
  331. Public Function WritTextFile(ByVal Fname,ByVal WritString)
  332.   Dim M_fso,FnameN
  333.   WritTextFile=False
  334.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  335.   Set FnameN= M_fso.OpenTextFile(Fname,2,True)
  336.   FnameN.Write WritString
  337.   FnameN.Close
  338.   Set M_fso = Nothing
  339.   WritTextFile=True
  340. End Function
  341. '**************************************************
  342. '函數ID:0013[讀取文本檔案]
  343. '函數名:ReadTextFile
  344. '作 用:讀取文本檔案
  345. '參 數:Fname ----  文本檔案名稱(包括路徑)
  346. '返回值:返回讀取的文本內容
  347. '**************************************************
  348. Public Function ReadTextFile(ByVal Fname)
  349.   Dim M_fso,FnameN,Fnr
  350.   ReadTextFile=""
  351.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  352.   Set FnameN= M_fso.OpenTextFile(Fname,1,True)
  353.   Fnr=FnameN.ReadAll
  354.   FnameN.Close
  355.   Set M_fso = Nothing
  356.   ReadTextFile=Fnr
  357. End Function
  358. '**************************************************
  359. '函數ID:0014[檢測ID是否為數字類型]
  360. '函數名:JCID
  361. '作 用:檢測ID是否為數字類型
  362. '參 數:ParaValue ---- 被檢測的ID值
  363. '返回值:返回ID值,如果不為數字類型返回0
  364. '**************************************************
  365. Public Function JCID(ByVal ParaValue)
  366.   If ((Not isNumeric(ParaValue)) OR (Trim(ParaValue)="")) Then
  367.      JCID=0
  368.   Else
  369.      JCID=ParaValue
  370.   End If
  371. End function
  372. '**************************************************
  373. '函數ID:0015[正則表達式測試]
  374. '函數名:CheckExp
  375. '作 用:正則表達式測試
  376. '參 數:patrn ---- 正則表達式
  377. '參 數:strng ---- 要測試的字符串
  378. '返回值:測試如果成立返回 True 否則 False
  379. '例 CheckExp("(\<.[^\<]*\>)","<br>")
  380. '**************************************************
  381. Public Function CheckExp(ByVal patrn、ByVal strng)
  382.   Dim regEx、retVal
  383.   Set regEx = New RegExp
  384.   regEx.Pattern = patrn
  385.   regEx.IgnoreCase = False
  386.   retVal = regEx.Test(strng)
  387.   CheckExp = retVal
  388. End Function
  389. '**************************************************
  390. '函數ID:0016[獲得執行程序的名稱]
  391. '函數名:GT_the_proname
  392. '作 用:獲得執行程序的名稱
  393. '參 數:
  394. '返回值:返回執行程序的名稱
  395. '**************************************************
  396. Public Function GT_the_proname()
  397.   Dim fu_name,temp,tempsiz
  398.   temp=Request.ServerVariables("PATH_INFO")
  399.   fu_name=Split(temp、"/"、-1、1)
  400.   tempsiz=UBound(fu_name)
  401.   GT_the_proname=fu_name(tempsiz)
  402. End function
  403. '**************************************************
  404. '函數ID:0017[讀取用戶IP地址信息]
  405. '函數名:Readusip
  406. '作 用:讀取用戶IP地址信息
  407. '參 數:
  408. '返回值:返回用戶IP地址
  409. '**************************************************
  410. Public Function Readusip()
  411.   Dim strIPAddr
  412.   If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR")、"unknown") > 0 Then
  413.       strIPAddr = Request.ServerVariables("REMOTE_ADDR")
  414.   ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR")、",") > 0 Then
  415.       strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR")、1、InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR")、",")-1)
  416.   ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR")、";") > 0 Then
  417.       strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR")、1、InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR")、";")-1)
  418.   Else
  419.       strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
  420.   End If
  421.   Readusip = Trim(Mid(strIPAddr、1、30))
  422. End Function
  423. '**************************************************
  424. '函數ID:0018[無組件上傳檔案到指定目錄並改檔案名稱]
  425. '函數名:UpFsRn
  426. '作 用:無組件上傳檔案到指定目錄並更改檔案名稱
  427. '參 數:RetSize--- 上傳限止大小(單位是M)
  428. '參 數:Fdir  ---- 目標路徑
  429. '參 數:Objwj ---- 目標檔案名稱
  430. '返回值:如果成功 True 否則 False
  431. '例 UpFsRn(10,Readsyspath(1)&"zfkhauto","test.txt")
  432. '使用表單提取檔案 <form method='POST' action='function.asp' enctype='multipart/form-data'><input type='file' name='T1'><input type='submit' value='提交' name='B1'></form>
  433. '**************************************************
  434. Public Function UpFsRn(ByVal RetSize,ByVal Fdir,ByVal Objwj)
  435.   UpFsRn=False
  436.   Dim oUpStream,oStream,formsize,Formdata,strFileName,strFileDir,ObjAllPath,datastart,dataend
  437.   strFileDir  = Fdir
  438.   strFileName = Swj
  439.   ObjAllPath  = ""
  440.   If Right(strFileDir,1)<>"\" Then strFileDir=strFileDir&"\"
  441.   ObjAllPath  =strFileDir&Objwj
  442.   If CheckFile(ObjAllPath) Then DelFile(ObjAllPath)
  443.   formsize=Request.TotalBytes
  444.   if (formsize<=(RetSize*1024*1024)) then
  445.      Formdata=Request.BinaryRead(formsize)
  446.      Pos_ts=LenB(getByteString(Chr(13) & Chr(10) & Chr(13) & Chr(10)))
  447.      Pos_b=InstrB(Formdata,getByteString(Chr(13) & Chr(10) & Chr(13) & Chr(10)))+Pos_ts
  448.      nFormdata=MidB(Formdata,Pos_b)
  449.      Pos_ts=InstrB(nFormdata,getByteString(Chr(13) & Chr(10) & "--"))
  450.      nnFormdata=MidB(nFormdata,Pos_ts)
  451.      Pos_e=LenB(Formdata)-LenB(nnFormdata)-Pos_b+1
  452.      datastart =Pos_b
  453.      dataend=Pos_e
  454.      set oUpStream = Server.CreateObject("adodb.stream")
  455.      oUpStream.Type = 1
  456.      oUpStream.Mode = 3
  457.      oUpStream.Open
  458.      set oStream = Server.CreateObject("adodb.stream")
  459.      oStream.Type = 1
  460.      oStream.Mode = 3
  461.      oStream.Open
  462.      oUpStream.Write Formdata
  463.      oUpStream.position=datastart-1
  464.      oUpStream.copyto oStream,dataend
  465.      oStream.SaveToFile ObjAllPath,2
  466.      oStream.Close
  467.      set oStream=nothing
  468.      UpFsRn=True
  469.   End If
  470. End function
  471. '**************************************************
  472. '函數ID:0019[過濾HTML腳本]
  473. '函數名:FilterJS
  474. '作 用:過濾HTML腳本
  475. '參 數:strHTML ---- 被檢測的HTML字串
  476. '返回值:返回過濾後的HTML
  477. '**************************************************
  478. Function FilterJS(ByVal strHTML)
  479.   Dim objReg,strContent  
  480.   If IsNull(strHTML) OR strHTML="" Then Exit Function  
  481.   Set objReg=New RegExp
  482.   objReg.IgnoreCase =True
  483.   objReg.Global=True
  484.   objReg.Pattern="(&#)"
  485.   strContent=objReg.Replace(strHTML,"")
  486.   objReg.Pattern="(function|meta|value|window\.|script|js:|about:|file:|Document\.|vbs:|frame|cookie)"
  487.   strContent=objReg.Replace(strContent,"")
  488.   objReg.Pattern="(on(finish|mouse|Exit=|error|click|key|load|focus|Blur))"
  489.   strContent=objReg.Replace(strContent,"")
  490.   FilterJS=strContent
  491.   strC
  492.   Set objReg=Nothing  
  493. End Function
  494. '**************************************************
  495. '函數ID:0020[創建MsAccess資料庫]
  496. '函數名:CrDb_MsAccess
  497. '作 用:創建MsAccess資料庫
  498. '參 數:DbPath     ---- 目標目錄信息
  499. '參 數:DbFileName ---- 目標庫檔案名稱
  500. '參 數:DbUpwd     ---- 目標庫打開密碼
  501. '返回值:建立成功返回 True 否則 False
  502. '**************************************************
  503. Public Function CrDb_MsAccess(ByVal DbPath,ByVal DbFileName,ByVal DbUpwd)
  504.   CrDb_MsAccess=False
  505.   On Error GoTo 0
  506.   On Error Resume Next
  507.   DIM fxztxt,fu_fu_db_str,fu_db_str
  508.   fxztxt=Chr(60)&"%Response.end()%"&Chr(62)
  509.   If Right(DbPath,1)<>"\" Then DbPath=DbPath & "\"
  510.   fu_fu_db_str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DbPath&"temp.mdb;"
  511.   fu_db_str     ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DbPath&DbFileName&";Jet OLEDB:Database Password="&DbUpwd&";"
  512.   Set fu_Ca = Server.CreateObject("ADOX.Catalog")
  513.   fu_Ca.Create fu_fu_db_str
  514.   Set fu_Ca = Nothing
  515.   Set fu_Je = Server.CreateObject("JRO.JetEngine")
  516.   fu_Je.CompactDatabase fu_fu_db_str,fu_db_str
  517.   Set fu_fso = CreateObject("Scripting.FileSystemObject")
  518.   fu_fso.DeleteFile(DbPath&"temp.mdb")
  519.   Set fu_Je   = Nothing
  520.   Set fu_fso  = Nothing
  521.   set fu_Conn =server.createobject("ADODB.Connection")
  522.   set fu_Rs   =server.createobject("ADODB.Recordset")
  523.   fu_Conn.open fu_db_str
  524.   fu_Sql_Str="CREATE TABLE [0] ([0] Text DEFAULT Notxt NOT NULL,[11] int IDENTITY (1、1) NOT NULL PRIMARY KEY)"
  525.   fu_Conn.Execute(fu_Sql_Str)
  526.   fu_Sql_Str="Select * From [0]"
  527.   fu_Rs.open fu_Sql_Str,fu_Conn,1,3
  528.   fu_Rs.addnew
  529.   fu_Rs("0")=fxztxt
  530.   fu_Rs.update
  531.   fu_Rs.Close
  532.   fu_Conn.Close
  533.   Set fu_Rs = Nothing
  534.   Set fu_Conn = Nothing
  535.   If Err.Number = 0 Then
  536.      CrDb_MsAccess=True
  537.   End If
  538.   On Error GoTo 0
  539. End function
  540. '**************************************************
  541. '函數ID:0021[創建MsSQLServer資料庫]
  542. '函數名:CrDb_MsSQLServer
  543. '作 用:創建MsSQLServer資料庫
  544. '參 數:DbIp   ---- 資料庫所在IP或主機名稱
  545. '參 數:DbSamc ---- 資料庫超管用戶名稱
  546. '參 數:DbSapwd---- 資料庫超管用戶口令
  547. '參 數:DbName ---- 新建資料庫名稱
  548. '參 數:DbUpmc ---- 新建資料庫所屬用戶名稱
  549. '參 數:DbUpwd ---- 新建資料庫所屬用戶密碼
  550. '返回值:建立成功返回 True 否則 False
  551. '**************************************************
  552. Public Function CrDb_MsSQLServer(ByVal DbIp,ByVal DbSamc,ByVal DbSapwd,ByVal DbName,ByVal DbUpmc,ByVal DbUpwd)
  553.   CrDb_MsSQLServer=False
  554.   On Error GoTo 0
  555.   On Error Resume Next
  556.   DIM fu_Sa_Str,fu_Ua_Str,fu_Conn,fu_Rs,fu_Sql_Str,fxztxt
  557.   fxztxt=Chr(60)&"%Response.end()%"&Chr(62)
  558.   fu_Sa_Str  ="DRIVER=SQL Server;UID="&DbSamc&";DATABASE=master;SERVER="&DbIp&";PWD="&DbSapwd&";"
  559.   fu_Ua_Str  ="DRIVER=SQL Server;UID="&DbUpmc&";DATABASE="&DbName&";SERVER="&DbIp&";PWD="&DbUpwd&";"
  560.   Set fu_Conn = Server.CreateObject("ADODB.Connection")
  561.   fu_Conn.Open fu_Sa_Str
  562.   fu_Conn.Execute "CREATE DATABASE " &DbName
  563.   fu_Conn.Close
  564.   fu_DB_Conn_Str="DRIVER=SQL Server;UID="&DbSamc&";DATABASE="&DbName&";SERVER="&DbIp&";PWD="&DbSapwd&";"
  565.   fu_Conn.Open fu_DB_Conn_Str
  566.   fu_Sql_Str="EXEC sp_addlogin '"&DbUpmc&"','"&DbUpwd&"','"&DbName&"'"
  567.   fu_Conn.Execute fu_Sql_Str
  568.   fu_Sql_Str="EXEC sp_grantdbaccess '"&DbUpmc&"'"
  569.   fu_Conn.Execute fu_Sql_Str
  570.   fu_Sql_Str="EXEC sp_addrolemember 'db_owner'、'"&DbUpmc&"'"
  571.   fu_Conn.Execute fu_Sql_Str
  572.   fu_Sql_Str="EXEC sp_defaultdb "&DbUpmc&","&DbName
  573.   fu_Conn.Execute fu_Sql_Str
  574.   fu_Conn.Close
  575.   fu_Conn.open fu_Ua_Str
  576.   fu_Sql_Str="CREATE TABLE [0] ([0] Text DEFAULT ('Notxt') NOT NULL,[11] int IDENTITY (1、1) NOT NULL PRIMARY KEY)"
  577.   fu_Conn.Execute fu_Sql_Str
  578.   Set fu_Rs=server.createobject("ADODB.Recordset")
  579.   fu_Sql_Str="Select * From [0]"
  580.   fu_Rs.open fu_Sql_Str,fu_Conn,1,3
  581.   fu_Rs.addnew
  582.   fu_Rs("0")=fxztxt
  583.   fu_Rs.update
  584.   fu_Rs.Close
  585.   fu_Conn.Close
  586.   Set fu_Rs = Nothing
  587.   Set fu_Conn=Nothing
  588.   If Err.Number = 0 Then
  589.      CrDb_MsSQLServer=True
  590.   End If
  591.   On Error GoTo 0
  592. End function
  593. '**************************************************
  594. '函數ID:0022[通過JMAIL發信]
  595. '函數名:MSMail
  596. '作 用:通過JMAIL發信
  597. '參 數:subject      ---- 郵件的標題
  598. '參 數:mailaddress  ---- 郵件服務器地址
  599. '參 數:senderName   ---- 發件人名稱
  600. '參 數:email        ---- 收件人E-MAIL地址
  601. '參 數:content      ---- 郵件內容
  602. '參 數:fromer       ---- 發件人E-MAIL地址
  603. '參 數:serEmailUser ---- 郵件服務器權限用戶名
  604. '參 數:serEmailPass ---- 郵件服務器權限用戶密碼
  605. '返回值:發送成功返回 True 否則 False
  606. '示 例:MSMail("test","smtp.163.com","mzy","mzymcm@yahoo.com.cn","test","mzymcm@163.com","mzymcm","abcmzy1029abc")
  607. '**************************************************
  608. Public Function MSMail(ByVal subject、ByVal mailaddress、ByVal senderName、ByVal email、ByVal content、ByVal fromer、ByVal serEmailUser、ByVal serEmailPass)
  609.   dim JmailMsg
  610.   MSMail=False
  611.   set JmailMsg=server.createobject("jmail.message")
  612.   JmailMsg.mailserverusername=serEmailUser
  613.   JmailMsg.mailserverpassword=serEmailPass
  614.   JmailMsg.addrecipient email
  615.   JmailMsg.from=fromer
  616.   JmailMsg.fromname=senderName
  617.   JmailMsg.charset="gb2312"
  618.   JmailMsg.logging=true
  619.   JmailMsg.silent=true
  620.   JmailMsg.subject=Subject
  621.   JmailMsg.body=Server.HTMLEncode(content)
  622.   JmailMsg.htmlbody=content
  623.   if not JmailMsg.send(mailaddress) then
  624.       MSMail=False
  625.   else
  626.       MSMail=True
  627.   end if
  628.   JmailMsg.close
  629.   set JmailMsg=nothing
  630. End function
  631. '**************************************************
  632. '函數ID:0023[測試組件是否安裝]
  633. '函數名:IsObjInstalled
  634. '作 用:測試組件是否安裝
  635. '參 數:strClassString ---- 組件名稱或標識字串
  636. '返回值:測試成功返回 True 否則 False
  637. '示 例:IsObjInstalled("JMAIL.Message")
  638. '**************************************************
  639. Public Function IsObjInstalled(ByVal strClassString)
  640.   On Error Resume Next
  641.   IsObjInstalled = False
  642.   Err = 0
  643.   Dim xTestObj
  644.   Set xTestObj = Server.CreateObject(strClassString)
  645.   If 0 = Err Then IsObjInstalled = True
  646.   Set xTestObj = Nothing
  647.   Err = 0
  648. End Function
  649. '**************************************************
  650. '函數名:GetObjVer
  651. '作 用:返回組件版本信息
  652. '參 數:strClassString ---- 組件名稱或標識字串
  653. '返回值:返回組件版本信息字串
  654. '示 例:GetObjVer("JMAIL.Message")
  655. '**************************************************
  656. Public Function GetObjVer(ByVal strClassString)
  657.   On Error Resume Next
  658.   GetObjVer=""
  659.   Err = 0
  660.   Dim xTestObj
  661.   Set xTestObj = Server.CreateObject(strClassString)
  662.   If 0 = Err Then GetObjVer=xtestobj.version
  663.   Set xTestObj = Nothing
  664.   Err = 0
  665. End Function
  666. '**************************************************
  667. '函數名:ListObjInfo
  668. '作 用:列出組件安裝信息
  669. '參 數: ----
  670. '返回值:列出組件安裝信息
  671. '示 例:ListObjInfo()
  672. '**************************************************
  673. Public Function ListObjInfo()
  674.   Dim TempBs,TempBsXX,TempObjType,tmpObjs
  675.   TempBs="×"
  676.   TempBsXX=""
  677.   TempObjType=""
  678.   tmpObjs=""
  679.   tmpObjs=tmpObjs& "JMail.Message|"
  680.   tmpObjs=tmpObjs& "ADODB.Stream|"
  681.   tmpObjs=tmpObjs& "MSWC.AdRotator|"
  682.   tmpObjs=tmpObjs& "MSWC.BrowserType|"
  683.   tmpObjs=tmpObjs& "MSWC.NextLink|"
  684.   tmpObjs=tmpObjs& "MSWC.Tools|"
  685.   tmpObjs=tmpObjs& "MSWC.Status|"
  686.   tmpObjs=tmpObjs& "MSWC.Counters|"
  687.   tmpObjs=tmpObjs& "MSWC.PermissionChecker|"
  688.   tmpObjs=tmpObjs& "Scripting.FileSystemObject|"
  689.   tmpObjs=tmpObjs& "adodb.connection|"
  690.   tmpObjs=tmpObjs& "SoftArtisans.FileUp|"
  691.   tmpObjs=tmpObjs& "SoftArtisans.FileManager|"
  692.   tmpObjs=tmpObjs& "CDONTS.NewMail|"
  693.   tmpObjs=tmpObjs& "Persits.MailSender|"
  694.   tmpObjs=tmpObjs& "LyfUpload.UploadFile|"
  695.   tmpObjs=tmpObjs& "Persits.Upload.1|"
  696.   tmpObjs=tmpObjs& "w3.upload|"
  697.   tmpObjs=Split(tmpObjs,"|")
  698.   Response.write "<center><table border='1' bordercolor='#000000' cellspacing='0' cellpadding='0' style='font-size: 9pt;"">宋體'><tr><td width='33%' valign='middle' align='center' style='border-left: 1 solid #808080; border-right: 1 solid #FFFFFF; border-top: 1 solid #FFFFFF; border-bottom: 1 solid #808080; padding-left: 2; padding-right: 2; padding-top: 1; padding-bottom: 1'>組件標識</td><td width='33%' valign='middle' align='center' style='border-left: 1 solid #808080; border-right: 1 solid #FFFFFF; border-top: 1 solid #FFFFFF; border-bottom: 1 solid #808080; padding-left: 2; padding-right: 2; padding-top: 1; padding-bottom: 1'>√|×</td><td width='34%' valign='middle' align='center' style='border-left: 1 solid #808080; border-right: 1 solid #FFFFFF; border-top: 1 solid #FFFFFF; border-bottom: 1 solid #808080; padding-left: 2; padding-right: 2; padding-top: 1; padding-bottom: 1'>版本</td></tr>" & vbCrlf
  699.   For i = LBound(tmpObjs) To UBound(tmpObjs)
  700.       If Trim(tmpObjs(i))<>"" Then
  701.          If IsObjInstalled(tmpObjs(i)) Then
  702.             TempObjType=tmpObjs(i)
  703.             TempBs="√"
  704.             TempBsXX=GetObjVer(tmpObjs(i))
  705.             If TempBsXX="" Then TempBsXX=" "
  706.          Else
  707.             TempObjType="<font color='#800000'>"&tmpObjs(i)&"</font>"
  708.             TempBs="<font color='#800000'>×</font>"
  709.             TempBsXX=" "
  710.          End If
  711.          Response.write "<tr>" & vbCrlf
  712.          Response.write "<td valign='middle' style='border-left: 1 solid #808080; border-right: 1 solid #FFFFFF; border-top: 1 solid #FFFFFF; border-bottom: 1 solid #808080; padding-left: 2; padding-right: 2; padding-top: 1; padding-bottom: 1'>"&TempObjType&"</td>" & vbCrlf
  713.          Response.write "<td valign='middle' align='center' style='border-left: 1 solid #808080; border-right: 1 solid #FFFFFF; border-top: 1 solid #FFFFFF; border-bottom: 1 solid #808080; padding-left: 2; padding-right: 2; padding-top: 1; padding-bottom: 1'>"&TempBs&"</td>" & vbCrlf
  714.          Response.write "<td valign='middle' align='center' style='border-left: 1 solid #808080; border-right: 1 solid #FFFFFF; border-top: 1 solid #FFFFFF; border-bottom: 1 solid #808080; padding-left: 2; padding-right: 2; padding-top: 1; padding-bottom: 1'>"&TempBsXX&"</td>" & vbCrlf
  715.          Response.write "</tr>" & vbCrlf
  716.       End If
  717.   Next
  718.   Response.write "</table></center>" & vbCrlf
  719. End Function
  720. '**************************************************
  721. '函數ID:0024[上傳檔案的窗口]
  722. '函數名:PosImageWin
  723. '作 用:上傳選擇檔案窗口,可自動提取檔案名及類型
  724. '參 數:PfUrlstr ---- 處理二進制檔案信息的URL地址
  725. '返回值:網頁HTML檔案
  726. '示 例:庫結構例子 CREATE TABLE [IMAGES]  ([ID] int IDENTITY (1,1) NOT NULL PRIMARY KEY,[MC]  varchar(50),[LX] varchar(20),[MEM] Text,[IMGS] image)
  727. '**************************************************
  728. Public Function PosImageWin(ByVal PfUrlstr)
  729.   PosImageWin=""
  730.   PosImageWin=PosImageWin &  "<center><table border='0' width='0' cellspacing='0' cellpadding='0' style='font-size: 9pt'>" & vbCrlf
  731.   PosImageWin=PosImageWin &  "<SCRIPT LANGUAGE=JAVASCRIPT>"&vbCrlf
  732.   PosImageWin=PosImageWin &  "function ckfilelx(){"&vbCrlf
  733.   PosImageWin=PosImageWin &  "tempwjm=POFile.ImageFs.value;"&vbCrlf
  734.   PosImageWin=PosImageWin &  "fgwjm=tempwjm.split('.');"&vbCrlf
  735.   PosImageWin=PosImageWin &  "newwjm=fgwjm.reverse();"&vbCrlf
  736.   PosImageWin=PosImageWin &  "POMem.ImageType.value=newwjm[0].toUpperCase();"&vbCrlf
  737.   PosImageWin=PosImageWin &  "tempwjm=newwjm[1].toUpperCase();"&vbCrlf
  738.   PosImageWin=PosImageWin &  "fgwjm=tempwjm.split('\\');"&vbCrlf
  739.   PosImageWin=PosImageWin &  "newwjm=fgwjm.reverse();"&vbCrlf
  740.   PosImageWin=PosImageWin &  "POMem.ImageName.value=newwjm[0].toUpperCase();"&vbCrlf
  741.   PosImageWin=PosImageWin &  "POMem.ImageReadme.value=newwjm[0].toUpperCase();"&vbCrlf
  742.   PosImageWin=PosImageWin &  "}"&vbCrlf
  743.   PosImageWin=PosImageWin &  "function Reedit(){POFile.reset();POMem.reset();}"&vbCrlf
  744.   PosImageWin=PosImageWin &  "function PostDo(){if (POFile.ImageFs.value==''){alert('沒有選擇檔案喲!');}else{bc.innerHTML='正在上傳,請稍後...';POFile.action=POFile.action+'&mc='+POMem.ImageName.value+'&lx='+POMem.ImageType.value+'&mem='+POMem.ImageReadme.value;bc.style.visibility='visible';ReEd.disabled=true;PoSe.disabled=true;POFile.submit();POFile.ImageFs.disabled=true;}}"&vbCrlf
  745.   PosImageWin=PosImageWin &  "</SCRIPT>"&vbCrlf
  746.   PosImageWin=PosImageWin &  "<tr><form method='POST' name='POFile' enctype='multipart/form-data' ACTION='"&PfUrlstr&"' target='tempa'><td width='100%' valign='middle'>" & vbCrlf
  747.   PosImageWin=PosImageWin &  "選擇檔案:<input type='file' name='ImageFs' ONCHANGE='ckfilelx();' style='font-size: 9pt;width:300;'>" & vbCrlf
  748.   PosImageWin=PosImageWin &  "</td></form></tr>" & vbCrlf
  749.   PosImageWin=PosImageWin &  "<tr><form method='POST' name='POMem'><td width='100%' valign='middle'>" & vbCrlf
  750.   PosImageWin=PosImageWin &  "檔案ID號:<input type='text' name='ImageID' ReadOnly  style='font-size: 9pt;width:300;'><br>" & vbCrlf
  751.   PosImageWin=PosImageWin &  "檔案名稱:<input type='text' name='ImageName'  style='font-size: 9pt;width:300;'><br>" & vbCrlf
  752.   PosImageWin=PosImageWin &  "檔案類型:<input type='text' name='ImageType' ReadOnly style='font-size: 9pt;width:300;'><br>" & vbCrlf
  753.   PosImageWin=PosImageWin &  "檔案介紹:<textarea rows='8' name='ImageReadme' cols='20' style='font-size: 9pt;width:300;'>還沒有</textarea>" & vbCrlf
  754.   PosImageWin=PosImageWin &  "</td></form></tr>" & vbCrlf
  755.   PosImageWin=PosImageWin &  "<tr><td width='100%' valign='middle' align='center'>" & vbCrlf
  756.   PosImageWin=PosImageWin &  "<input type='button' value='重置' name='ReEd' OnClick='Reedit();'>  <input type='button' value='上傳' name='PoSe' OnClick='PostDo();'>" & vbCrlf
  757.   PosImageWin=PosImageWin &  "</td></tr></table></center><div id='bc' name='bc' style='position: absolute; left: 45%; top:40%; z-index: 0;background-color: #EAEAEA;visibility: hidden;' valign='middle' align='center'></div>" & vbCrlf
  758.   PosImageWin=PosImageWin &  "<iframe src='' ID='tempa' NAME='tempa' frameborder='0' width='0' height='0' style='width:0;Height:0;'>" & vbCrlf
  759. End Function
  760. '**************************************************
  761. '函數ID:0025[取得資料庫鏈接字串]
  762. '函數名:GetConnStr
  763. '作 用:取得資料庫鏈接字串,能生成MsAccess和MsSqlServer鏈接串
  764. '參 數:Lx         ---- 0 是MsAccess 、1 是MsSqlServer
  765. '參 數:Dbiporpath ---- 資料庫IP或路徑
  766. '參 數:Dbmc       ---- 資料庫名稱
  767. '參 數:Dbuid      ---- 資料庫用戶名稱
  768. '參 數:Dbupwd     ---- 資料庫用戶密碼
  769. '返回值:鏈接字串
  770. '示 例:[url]http://www.knowsky.com/[/url]
  771. '**************************************************
  772. Public Function GetConnStr(ByVal Lx,ByVal Dbiporpath,ByVal Dbmc,ByVal Dbuid,ByVal Dbupwd)
  773.   GetC
  774.   If Lx=0 Then
  775.      If Right(Dbiporpath,1)<>"\" Then Dbiporpath=Dbiporpath & "\"
  776.      GetC&Dbiporpath&Dbmc&";Jet OLEDB:Database Password="&Dbupwd&";"
  777.   End If
  778.   If Lx=1 Then
  779.      GetC&Dbuid&";DATABASE="&Dbmc&";SERVER="&Dbiporpath&";PWD="&Dbupwd&";"
  780.   End If
  781. End Function
  782. '**************************************************
  783. '函數ID:0026[取得multipart/form-data形式上傳檔案]
  784. '函數名:GetImageData
  785. '作 用:取得multipart/form-data形式上傳檔案
  786. '參 數:MaxSize ---- 上傳的限止大小,單位:M(兆)
  787. '返回值:二進制資料
  788. '示 例:
  789. '**************************************************
  790. Public Function GetImageData(ByVal MaxSize)
  791.   GetImageData=""
  792.   DIM formsize,Formdata,bncrlf,divider,datastart,dataend,mydata
  793.   formsize=Request.TotalBytes
  794.   if (formsize<=(MaxSize*1024*1024)) then
  795.      Formdata=Request.BinaryRead(formsize)
  796.      Pos_ts=LenB(getByteString(Chr(13) & Chr(10) & Chr(13) & Chr(10)))
  797.      Pos_b=InstrB(Formdata,getByteString(Chr(13) & Chr(10) & Chr(13) & Chr(10)))+Pos_ts
  798.      nFormdata=MidB(Formdata,Pos_b)
  799.      Pos_ts=InstrB(nFormdata,getByteString(Chr(13) & Chr(10) & "--"))
  800.      nnFormdata=MidB(nFormdata,Pos_ts)
  801.      Pos_e=LenB(Formdata)-LenB(nnFormdata)-Pos_b+1
  802.      datastart =Pos_b
  803.      dataend=Pos_e
  804.      mydata=midb(Formdata,datastart,dataend)
  805.   End If
  806.   GetImageData=mydata
  807. End Function
  808. '''' 將字串轉為二進制串
  809. Function getByteString(StringStr)
  810.   For i=1 to Len(StringStr)
  811.       char=Mid(StringStr,i,1)
  812.       getByteString=getByteString & chrB(AscB(char))
  813.   Next
  814. End function
  815. '**************************************************
  816. '函數ID:0027[保存或查看上傳到資料庫中的資料,帶調用上傳窗口]
  817. '函數名:GoImgToDb
  818. '作 用:保存或查看上傳到資料庫中的資料,帶調用上傳窗口
  819. '參 數:PPLX       ---- 執行類型(空為保存,ID號為查看該ID的檔案)
  820. '參 數:PUrl       ---- 主執行程序的URL部份
  821. '參 數:ConnStr    ---- 上傳檔案的資料庫鏈接字串
  822. '參 數:ImagTbname ---- 檔案保存的資料表名稱
  823. '參 數:Did        ---- 檔案ID字段名
  824. '參 數:Dmc        ---- 檔案名稱字段名
  825. '參 數:Dlx        ---- 檔案類型字段名
  826. '參 數:Dmem       ---- 檔案說明字段名
  827. '參 數:Ddata      ---- 檔案的二進制資料的字段名
  828. '參 數:MaxSize    ---- 上傳的限止大小,單位:M(兆)
  829. '參 數:IDLX       ---- 標識ID字段的類型 ( 0 字符型 1 數值(非自增量型) 2 數值型(自增量型)  )
  830. '返回值:成功保存的JAVASCRIPT  注在非自動增量情況下標識字段長度應超過20個字符
  831. '示 例:GoImgToDb("17","http://127.0.0.1/function.asp",GetConnStr(1,"127.0.0.1","temp","sa","mzy1029"),"img","id","mc","lx","mem","data",20)
  832. '示 例:GoImgToDb("","http://127.0.0.1/function.asp",GetConnStr(1,"127.0.0.1","temp","sa","mzy1029"),"img","id","mc","lx","mem","data",20)
  833. '**************************************************
  834. Public Function GoImgToDb(ByVal PPLX,ByVal PUrl,ByVal ConnStr,ByVal ImagTbname,ByVal Did,ByVal Dmc,ByVal Dlx,ByVal Dmem,ByVal Ddata,ByVal MaxSize,ByVal IDLX)
  835.   DIM Pjobs,Pjurl
  836.   tempimg_conn_str=ConnStr
  837.   Set fu_Conn=server.createobject("ADODB.Connection")
  838.   Set fu_Rs=server.createobject("ADODB.Recordset")
  839.   fu_Conn.open tempimg_conn_str
  840.   If JCID(PPLX)=0 Then
  841.      Pjobs=Request("img")
  842.      If InStr(PUrl,"?")>0 Then
  843.         Pjurl=PUrl&"&img=sav"
  844.      Else
  845.         Pjurl=PUrl&"?img=sav"
  846.      End If
  847.      If Pjobs="" then Response.write PosImageWin(Pjurl)
  848.      If Pjobs="sav" Then
  849.         Sql_Str="SELECT "&Did&","&Dmc&","&Dlx&","&Dmem&","&Ddata&" FROM "&ImagTbname
  850.         fu_Rs.open Sql_Str,fu_Conn,3,3
  851.         fu_Rs.addnew
  852.         If IDLX < 2 Then
  853.            fu_Rs(Did)  =MakeTheID()
  854.         End If
  855.         fu_Rs(Dmc)  =Request("mc")
  856.         fu_Rs(Dlx)  =Request("lx")
  857.         fu_Rs(Dmem) =Request("mem")
  858.         fu_Rs(Ddata).AppendChunk GetImageData(JCID(MaxSize))
  859.         fu_Rs.update
  860.         fu_Rs.Close
  861.         fu_Rs.open Sql_Str,fu_Conn,3,3
  862.         fu_Rs.MoveLast
  863.         Response.write "<SCRIPT LANGUAGE=JAVASCRIPT>"&vbCrlf
  864.         Response.write "parent.POMem.ImageID.value='"&fu_Rs(Did)&"';"&vbCrlf
  865.         Response.write "parent.bc.innerHTML='已成功保存資料!';"
  866.         Response.write "</SCRIPT>"&vbCrlf
  867.       End If
  868.   Else
  869.      If IDLX > 0 Then
  870.         Sql_Str="SELECT "&Did&","&Dmc&","&Dlx&","&Dmem&","&Ddata&" FROM "&ImagTbname&" WHERE ("&Did&" ="&PPLX&")"
  871.      Else
  872.         Sql_Str="SELECT "&Did&","&Dmc&","&Dlx&","&Dmem&","&Ddata&" FROM "&ImagTbname&" WHERE ("&Did&" ='"&PPLX&"')"
  873.      End If
  874.      fu_Rs.open Sql_Str,fu_Conn,1,1
  875.      If fu_Rs.RecordCount >0 Then
  876.         tempaa=Trim(fu_Rs(Dlx))
  877.         Response.Clear
  878.         Response.Expires = -9999
  879.         Response.AddHeader "pragma"、"no-cache"
  880.         Response.AddHeader "cache-ctrol"、"no-cache"
  881.         Response.Buffer = TRUE
  882.         Response.AddHeader "Content-Disposition:","attachment;filename="&fu_Rs(Dmc)&"."&tempaa
  883.         Response.C&Trim(fu_Rs(Dlx))
  884.         Response.Flush
  885.         Response.BinaryWrite fu_Rs(Ddata)
  886.         Response.End
  887.      End If
  888.   End If
  889.   fu_Rs.Close
  890.   fu_Conn.close
  891.   Set fu_Rs = Nothing
  892.   Set fu_Conn = Nothing
  893. End Function
  894. '**************************************************''''
  895. '函數ID:0028[取得圖像的類型|寬|高]
  896. '函數名:GetImageDx
  897. '作 用:取得圖像的類型|寬|高
  898. '參 數:filepath ---- 檔案路徑及檔案命名
  899. '返回值:"類型|寬|高"
  900. '**************************************************''''
  901. Public Function GetImageDx(ByVal filepath)
  902.   DIM Tempsm,NBxx,WJXX(3)
  903.   SET Tempsm = Server.CreateObject("ADODB.Stream")
  904.   Tempsm.Mode=3
  905.   Tempsm.Type=1
  906.   Tempsm.Open
  907.   Tempsm.LoadFromFile filepath
  908.   NBxx=Hex(BinVal(Tempsm.Read(3)))
  909.   WJXX(0)=NBxx
  910.   WJXX(1)="0"
  911.   WJXX(2)="0"
  912.   If NBxx="464947" Then
  913.      WJXX(0)="GIF"
  914.      Tempsm.Read(3)
  915.      WJXX(1)=BinVal(Tempsm.Read(2))
  916.      WJXX(2)=BinVal(Tempsm.Read(2))
  917.   End If
  918.   If NBxx="FFD8FF" Then
  919.      WJXX(0)="JPG"
  920.      do
  921.      do: p1=binVal(Tempsm.Read(1)): loop while p1=255 and not Tempsm.EOS
  922.      if p1>191 and p1<196 then exit do else Tempsm.Read(binval2(Tempsm.Read(2))-2)
  923.      do:p1=binVal(Tempsm.Read(1)):loop while p1<255 and not Tempsm.EOS
  924.      loop while true
  925.      Tempsm.Read(3)
  926.      WJXX(2)=binval2(Tempsm.Read(2))
  927.      WJXX(1)=binval2(Tempsm.Read(2))
  928.   End If
  929.   If Mid(NBxx,3)="4D42" Then
  930.      Tempsm.Read(15)
  931.      WJXX(0)="BMP"
  932.      WJXX(1)=binval(Tempsm.Read(4))
  933.      WJXX(2)=binval(Tempsm.Read(4))
  934.   End If
  935.   If NBxx="4E5089" Then
  936.      WJXX(0)="PNG"
  937.      Tempsm.Read(15)
  938.      WJXX(1)=BinVal2(Tempsm.Read(2))
  939.      Tempsm.Read(2)
  940.      WJXX(2)=BinVal2(Tempsm.Read(2))
  941.   End If
  942.   If NBxx="535743" Then
  943.      WJXX(0)="SWF"
  944.      Tempsm.Read(5)
  945.      binData=Tempsm.Read(1)
  946.      sConv=Num2Str(ascb(binData),2 ,8)
  947.      nBits=Str2Num(left(sConv,5),2)
  948.      sConv=mid(sConv,6)
  949.      while(len(sConv)<nBits*4)
  950.         binData=Tempsm.Read(1)
  951.         sConv=sConv&Num2Str(ascb(binData),2 ,8)
  952.      wend
  953.      WJXX(1)=int(abs(Str2Num(mid(sConv,1*nBits+1,nBits),2)-Str2Num(mid(sConv,0*nBits+1,nBits),2))/20)
  954.      WJXX(2)=int(abs(Str2Num(mid(sConv,3*nBits+1,nBits),2)-Str2Num(mid(sConv,2*nBits+1,nBits),2))/20)
  955.   End If
  956.   Tempsm.Close
  957.   SET Tempsm=nothing
  958.   GetImageDx = WJXX(0)&"|"&WJXX(1)&"|"&WJXX(2)
  959. End Function
  960. Function BinVal(bin)
  961.   dim ret
  962.   ret = 0
  963.   for i = lenb(bin) to 1 step -1
  964.       ret = ret *256 + ascb(midb(bin,i,1))
  965.   next
  966.   BinVal=ret
  967. End Function
  968. Function BinVal2(bin)
  969.   dim ret
  970.   ret = 0
  971.   for i = 1 to lenb(bin)
  972.       ret = ret *256 + ascb(midb(bin,i,1))
  973.   next
  974.   BinVal2=ret
  975. End Function
  976. Function Str2Num(str,base)
  977.   dim ret
  978.   ret = 0
  979.   for i=1 to len(str)
  980.       ret = ret *base + cint(mid(str,i,1))
  981.   next
  982.   Str2Num=ret
  983. End Function
  984. Function Num2Str(num,base,lens)
  985.   dim ret
  986.   ret = ""
  987.   while(num>=base)
  988.   ret = (num mod base) & ret
  989.   num = (num - num mod base)/base
  990.   wend
  991.   Num2Str = right(string(lens,"0") & num & ret,lens)
  992. End Function
  993. '**************************************************''''
  994. '函數ID:0029[將本地檔案進行二進制分析,並保存到服務器的指定目錄下]
  995. '函數名:TxtBinInfo
  996. '作 用:將本地檔案進行二進制分析,並保存到服務器的指定目錄下
  997. '參 數:Filestr ---- 被分析檔案路徑及檔案命名
  998. '參 數:WebSvFile ---- 分析信息保存檔案路徑及檔案命名
  999. '返回值:成功返回 True 否則 False
  1000. '示 例:  TempSj=Request.Form("Tfile")
  1001. '示 例:  If Trim(TempSj)<>"" Then CALL TxtBinInfo(TempSj,"d:\aa.txt")
  1002. '示 例:  Response.write "<form method='POST' action='test.asp'><input type='file' name='Tfile'><input type='submit' value='提交' name='B1'></form>"
  1003. '**************************************************''''
  1004. Public Function TxtBinInfo(ByVal Filestr,ByVal WebSvFile)
  1005.   TxtBinInfo=False
  1006.   DIM Wtempxx
  1007.   Wtempxx=""
  1008.   SET Tempsm = Server.CreateObject("ADODB.Stream")
  1009.   Tempsm.Mode=3
  1010.   Tempsm.Type=1
  1011.   Tempsm.Open
  1012.   Tempsm.LoadFromFile (Filestr)
  1013.   tempRedImg=Tempsm.Read
  1014.   for i = lenb(tempRedImg) to 1 step -1
  1015.       Wtempxx=Wtempxx& "地址號:" &i &"地址十六進制:"& Hex(ascb(midb(tempRedImg,i,1))) &"  十進制:"&ascb(midb(tempRedImg,i,1))&vbCrlf
  1016.   next
  1017.   Wtempxx=Wtempxx&vbCrlf&"大小:"&lenb(tempRedImg)&"字節 該檔案名稱為:" &Filestr
  1018.   Set M_fso = CreateObject("Scripting.FileSystemObject")
  1019.   Set FnameN= M_fso.OpenTextFile(WebSvFile,2,True)
  1020.   FnameN.Write Wtempxx
  1021.   FnameN.Close
  1022.   Set M_fso = Nothing
  1023.   Tempsm.Close
  1024.   SET Tempsm=nothing
  1025.   TxtBinInfo=True
  1026. End Function
  1027. '**************************************************''''
  1028. '函數ID:0030[將本地資料表或庫上傳並導入到服務器資料庫的表中]
  1029. '函數名:ReadCdbToServ
  1030. '作 用:將本地資料表或庫上傳並導入到服務器資料庫的表中
  1031. '參 數:CdbFileUp  ---- 被上傳的庫或表檔案路徑及檔案名
  1032. '參 數:SdbConnStr ---- 服務器資料庫鏈接字串
  1033. '參 數:SdbTbname  ---- 服務器將打開的表名
  1034. '參 數:FildStrArr ---- 導入的資料字段串(各字段用","隔開)
  1035. '返回值:成功返回 True 否則 False
  1036. '注可導入的檔案類型有(0:Excel 1:Access 2:Text 3:DBF/FoxPro)
  1037. '註:Excel 的表為Sheet名稱,文本及DBF/FoxPro的表名為資料檔案的全名,如 aa.txt 或 aa.dbf
  1038. '註:Text 文本資料表是以","為分隔的格式 ,重點:被導入的資料庫只能包含一個表,並且導入的字段應和服務器資料庫的表相一致
  1039. '示 例:  CALL ReadCdbToServ(TempSj,"DRIVER=SQL Server;UID=sa;DATABASE=temp;SERVER=127.0.0.1;PWD=mzy1029;","img","mc,lx,mem")
  1040. '示 例:  Response.write "<form method='POST' action='test.asp' enctype='multipart/form-data'><input type='file' name='Tfile'><input type='submit' value='提交' name='B1'></form>"
  1041. '**************************************************''''
  1042. Public Function ReadCdbToServ(ByVal CdbFileUp,ByVal SdbConnStr,ByVal SdbTbname,ByVal FildStrArr)
  1043.   ReadCdbToServ=False
  1044.   Dim MbDir,Mbwjmc,aryTemp,VrCdb_Conn_Str,ofu_Conn,ofu_Rs,sfu_Conn,sfu_Rs,ofu_sql_str,sfu_sql_str,oaryTemp,TpTrs,Gtlx,CdbTbname
  1045.   VrCdb_Conn_Str=""
  1046.   MbDir=Readsyspath(1)
  1047.   If Right(MbDir,1)<>"\" Then MbDir=MbDir&"\"
  1048.   Mbwjmc=CdbFileUp
  1049.   aryTemp = Split(Mbwjmc,"\")
  1050.   Mbwjmc=aryTemp(UBound(aryTemp))
  1051.   aryTemp=Split(Mbwjmc,".")
  1052.   Gtlx=UCase(aryTemp(UBound(aryTemp)))
  1053.   If UpFsRn(100,MbDir,"temp."&Gtlx) Then
  1054.      If Gtlx="XLS" Then VrCdb_Conn_Str ="Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source="&MbDir&"temp."&Gtlx&";"             '' Excel [Tbname$]
  1055.      If Gtlx="MDB" Then VrCdb_Conn_Str ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&MbDir&"temp."&Gtlx&";Jet OLEDB:Database Password=;"              '' Access
  1056.      If Gtlx="TXT" Then VrCdb_Conn_Str ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&MbDir&";Extended Properties='text;HDR=Yes;FMT=Delimited'"        '' Text(,分割)
  1057.      If Gtlx="DBF" Then VrCdb_Conn_Str ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&MbDir&";Extended Properties=dBASE IV;User ID=Admin;Password="    '' DBF/FoxPro
  1058.      Set sfu_Conn=server.createobject("ADODB.Connection")
  1059.      Set sfu_Rs  =server.createobject("ADODB.Recordset")
  1060.      sfu_Conn.open SdbConnStr
  1061.      sfu_sql_str="select "&FildStrArr&" from "&SdbTbname
  1062.      Set ofu_Conn=server.createobject("ADODB.Connection")
  1063.      Set ofu_Rs  =server.createobject("ADODB.Recordset")
  1064.      ofu_Conn.open VrCdb_Conn_Str
  1065.      Set  TpTrs=ofu_Conn.OpenSchema(20)
  1066.      CdbTbname=TpTrs(2)
  1067.      TpTrs.Close
  1068.      Set TpTrs = Nothing
  1069.      If Gtlx="XLS" Then CdbTbname="["&CdbTbname&"]"
  1070.      ofu_sql_str="select "&FildStrArr&" from "&CdbTbname
  1071.      oaryTemp = Split(FildStrArr,",")
  1072.      sfu_Rs.open sfu_sql_str,sfu_Conn,1,3
  1073.      ofu_Rs.open ofu_sql_str,ofu_Conn,1,3
  1074.      Do While Not ofu_Rs.Eof
  1075.         sfu_Rs.addnew
  1076.         For i = LBound(oaryTemp) To UBound(oaryTemp)
  1077.             sfu_Rs(oaryTemp(i))=ofu_Rs(oaryTemp(i))
  1078.         Next
  1079.         sfu_Rs.update
  1080.         ofu_Rs.MoveNext
  1081.      Loop
  1082.      ofu_Rs.Close
  1083.      ofu_Conn.Close
  1084.      Set ofu_Rs = Nothing
  1085.      Set ofu_Conn=Nothing
  1086.      sfu_Rs.Close
  1087.      sfu_Conn.Close
  1088.      Set sfu_Rs = Nothing
  1089.      Set sfu_Conn=Nothing
  1090.      ReadCdbToServ=True
  1091.      DelFile(MbDir&"temp."&Gtlx)
  1092.   End If
  1093. End Function
  1094. '**************************************************
  1095. '函數ID:0031[返回服務器信息]
  1096. '函數名:GetServerInfo
  1097. '作 用:返回服務器信息
  1098. '參 數:Lx ---- 返回信息代碼類
  1099. ' 0 : 服務器的域名
  1100. ' 1 : 服務器的IP地址
  1101. ' 2 : 服務器操作系統
  1102. ' 3 : 服務器解譯引擎
  1103. ' 4 : 服務器軟體的名稱及版本
  1104. ' 5 : 服務器正在運行的連接埠
  1105. ' 6 : 服務器CPU數量
  1106. ' 7 : 服務器Application數量
  1107. ' 8 : 服務器Session數量
  1108. ' 9 : 請求的物理路徑
  1109. '10 : 請求的URL
  1110. '11 : 服務器當前時間
  1111. '12 : 腳本連接超時時間
  1112. '13 : 服務器CPU詳情
  1113. '14 :
  1114. '返回值:返回信息字串
  1115. '示 例:GetServerInfo(2)
  1116. '**************************************************
  1117. Public Function GetServerInfo(ByVal Lx)
  1118.   GetServerInfo=""
  1119.   Dim okCPUS、okCPU、okOS
  1120.   on error resume next
  1121.   Set WshShell = server.CreateObject("WScript.Shell")
  1122.   Set WshSysEnv = WshShell.Environment("SYSTEM")
  1123.   okOS = cstr(WshSysEnv("OS"))
  1124.   okCPUS = cstr(WshSysEnv("NUMBER_OF_PROCESSORS"))
  1125.   okCPU = cstr(WshSysEnv("PROCESSOR_IDENTIFIER"))
  1126.   if isnull(okCPUS) & "" = "" then
  1127.     okCPUS = Request.ServerVariables("NUMBER_OF_PROCESSORS")
  1128.   end if
  1129.   tnow = now():oknow = cstr(tnow)
  1130.   if oknow <> year(tnow) & "-" & month(tnow) & "-" & day(tnow) & " " & hour(tnow) & ":" & right(FormatNumber(minute(tnow)/100,2),2) & ":" & right(FormatNumber(second(tnow)/100,2),2) then oknow = oknow & " (日期格式不規範)"
  1131.   If Lx=0  Then GetServerInfo=Request.ServerVariables("server_name")
  1132.   If Lx=1  Then GetServerInfo=Request.ServerVariables("LOCAL_ADDR")
  1133.   If Lx=2  Then GetServerInfo=okOS     ''  Request.ServerVariables("OS")
  1134.   If Lx=3  Then GetServerInfo=ScriptEngine & "/"& ScriptEngineMajorVersion &"."&ScriptEngineMinorVersion&"."& ScriptEngineBuildVersion
  1135.   If Lx=4  Then GetServerInfo=Request.ServerVariables("SERVER_SOFTWARE")
  1136.   If Lx=5  Then GetServerInfo=Request.ServerVariables("server_port")
  1137.   If Lx=6  Then GetServerInfo=okCPUS   ''  Request.ServerVariables("NUMBER_OF_PROCESSORS")
  1138.   If Lx=7  Then GetServerInfo=Application.Contents.Count
  1139.   If Lx=8  Then GetServerInfo=Session.Contents.Count
  1140.   If Lx=9  Then GetServerInfo=Request.ServerVariables("path_translated")
  1141.   If Lx=10 Then GetServerInfo=Request.ServerVariables("server_name")&Request.ServerVariables("script_name")
  1142.   If Lx=11 Then GetServerInfo=oknow
  1143.   If Lx=12 Then GetServerInfo=Server.ScriptTimeout
  1144.   If Lx=13 Then GetServerInfo=okCPU
  1145. End Function
  1146. '**************************************************
  1147. '函數ID:0032[產生20位長度的唯一標識ID]
  1148. '函數名:MakeTheID
  1149. '作 用:產生20位長度的唯一標識ID
  1150. '參 數: ----
  1151. '返回值:返回20位長度的唯一標識ID
  1152. '示 例:MakeTheID()
  1153. '**************************************************
  1154. Public Function MakeTheID()
  1155.   DIM datestr,mytime,myyear,mymonth,myday,i
  1156.   myyear = cstr(year(date()))
  1157.   mymonth = cstr(month(date()))
  1158.   myday = cstr(day(date()))
  1159.   mymonth = lpad(mymonth,0,2)
  1160.   MakeTheID = myyear & "_" & mymonth & "_" & myday & "_"
  1161.   datestr=cstr(now())
  1162.   i = instr(datestr," ")
  1163.   mytime = right(datestr,len(datestr)-i)
  1164.   mytime = replace(mytime,":","_")
  1165.   randomize
  1166.   i = Int((9999 - 1000 + 1) * Rnd + 1000)
  1167.   MakeTheID = MakeTheID & mytime & "_" & i
  1168.   MakeTheID = replace(MakeTheID,"_","")
  1169. end function
  1170. '**************************************************
  1171. '函數ID:0033[用於左填充指定數量的字符,以達到規範長度]
  1172. '函數名:lpad
  1173. '作 用:用於左填充指定數量的字符,以達到規範長度
  1174. '參 數:desstr  ---- 目標字符
  1175. '參 數:padchar ---- 填充字符
  1176. '參 數:lenint  ---- 填充後的字符總長度
  1177. '返回值:返回字符
  1178. '示 例:response.write lpad(4,0,5),結果顯示00004
  1179. '**************************************************
  1180. Public Function  lpad(ByVal desstr,ByVal padchar,ByVal lenint)
  1181.   dim d,p,t
  1182.   d = cstr(desstr)
  1183.   p = cstr(padchar)
  1184.   lpad=""
  1185.   for t=1 to lenint-len(d)
  1186.       lpad = p & lpad
  1187.   next
  1188.   lpad = lpad & d
  1189. end function
  1190. '**************************************************
  1191. '函數ID:0034[用於右填充指定數量的字符,以達到規範長度]
  1192. '函數名:rpad
  1193. '作 用:用於右填充指定數量的字符,以達到規範長度
  1194. '參 數:desstr  ---- 目標字符
  1195. '參 數:padchar ---- 填充字符
  1196. '參 數:lenint  ---- 填充後的字符總長度
  1197. '返回值:返回字符
  1198. '示 例:response.write rpad('a',0,5),結果顯示a0000
  1199. '**************************************************
  1200. Public Function rpad(ByVal desstr,ByVal padchar,ByVal lenint)
  1201.   dim d,p,t
  1202.   d = cstr(desstr)
  1203.   p = cstr(padchar)
  1204.   rpad=""
  1205.   for t=1 to lenint-len(d)
  1206.       rpad = p & rpad  
  1207.   next
  1208.   rpad = d & rpad
  1209. end function
  1210. '**************************************************
  1211. '函數ID:0035[格式化時間(顯示)]
  1212. '函數名:Format_Time
  1213. '作 用:格式化時間(顯示)
  1214. '參 數:s_Time  ---- 時間變量
  1215. '參 數:n_Flag  ---- 時間樣式類型代碼
  1216. ' 1:"yyyy-mm-dd hh:mm:ss"
  1217. ' 2:"yyyy-mm-dd"
  1218. ' 3:"hh:mm:ss"
  1219. ' 4:"yyyy年mm月dd日"
  1220. ' 5:"yyyymmdd"
  1221. ' 6:"MM/DD"
  1222. '返回值:返回格式化後時間
  1223. '示 例:response.write Format_Time(now(),4)
  1224. '**************************************************
  1225. Public Function Format_Time(ByVal s_Time,ByVal n_Flag)
  1226.   Dim y、m、d、h、mi、s
  1227.   Format_Time = ""
  1228.   If IsDate(s_Time) = False Then Exit Function
  1229.   y = cstr(year(s_Time))
  1230.   m = cstr(month(s_Time))
  1231.   If len(m) = 1 Then m = "0" & m
  1232.   d = cstr(day(s_Time))
  1233.   If len(d) = 1 Then d = "0" & d
  1234.   h = cstr(hour(s_Time))
  1235.   If len(h) = 1 Then h = "0" & h
  1236.   mi = cstr(minute(s_Time))
  1237.   If len(mi) = 1 Then mi = "0" & mi
  1238.   s = cstr(second(s_Time))
  1239.   If len(s) = 1 Then s = "0" & s
  1240.   Select Case n_Flag
  1241.   Case 1
  1242.   ' yyyy-mm-dd hh:mm:ss
  1243.    Format_Time = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
  1244.   Case 2
  1245.   ' yyyy-mm-dd
  1246.    Format_Time = y & "-" & m & "-" & d
  1247.   Case 3
  1248.   ' hh:mm:ss
  1249.    Format_Time = h & ":" & mi & ":" & s
  1250.   Case 4
  1251.   ' yyyy年mm月dd日
  1252.    Format_Time = y & "年" & m & "月" & d & "日"
  1253.   Case 5
  1254.   ' yyyymmdd
  1255.    Format_Time = y & m & d
  1256.   Case 6
  1257.   'mm/dd
  1258.    Format_Time = m & "/" & d
  1259.   case 7
  1260.    Format_Time = m & "/" & d & "/" & right(y,2)
  1261.   End Select
  1262. End Function
  1263. '**************************************************
  1264. '函數ID:0036[測試資料庫是否存在]
  1265. '函數名:TestDBOK
  1266. '作 用:測試資料庫是否存在
  1267. '參 數:TestConnStr ---- 資料庫鏈接字串
  1268. '返回值:測試成功返回 True 否則 False
  1269. '示 例:TestDBOK("testConnString")
  1270. '**************************************************
  1271. Public Function TestDBOK(ByVal TestConnStr)
  1272.   TestDBOK=False
  1273.   DIM fu_Conn
  1274.   Set fu_Conn=server.createobject("ADODB.Connection")
  1275.   On Error GoTo 0
  1276.   On Error Resume Next
  1277.   fu_Conn.open TestConnStr
  1278.   If Err.Number = 0 Then
  1279.      TestDBOK=True
  1280.   End If
  1281.   On Error GoTo 0
  1282.   Set fu_Conn = Nothing
  1283. End Function
  1284. '**************************************************
  1285. '函數ID:0037[測試資料庫中的表是否存在]
  1286. '函數名:TestTbOK
  1287. '作 用:測試資料庫中的表是否存在
  1288. '參 數:ObjConnName ---- 資料庫鏈接定義
  1289. '參 數:TestDbname  ---- 被測試表的名稱
  1290. '返回值:測試成功返回 True 否則 False
  1291. '示 例:TestTbOK(TestConn,"tbname")
  1292. '**************************************************
  1293. Public Function TestTbOK(ByVal ObjConnName,ByVal TestDbname)
  1294.   TestTbOK=False
  1295.   DIM fu_Rs
  1296.   Set fu_Rs=server.createobject("ADODB.Recordset")
  1297.   On Error GoTo 0
  1298.   On Error Resume Next
  1299.   fu_Rs.open "SELECT * FROM "&TestDbname,ObjConnName,1,1
  1300.   fu_Rs.Close
  1301.   If Err.Number = 0 Then
  1302.      TestTbOK=True
  1303.   End If
  1304.   On Error GoTo 0
  1305.   Set fu_Rs = Nothing
  1306. End Function
  1307. '**************************************************
  1308. '函數ID:0038[線上HTML編輯器]
  1309. '函數名:HTML_MZYEDIT
  1310. '作 用:測試資料庫中的表是否存在
  1311. '參 數:MEIPath     ---- 各圖示圖像所在的路徑
  1312. '參 數:GtimgPath   ---- 圖片上傳程序的URL
  1313. '參 數:GtswfPath   ---- Flash動畫上傳程序的URL
  1314. '參 數:GtwavPath   ---- 音樂檔案上傳程序的URL
  1315. '參 數:GtotherPath ---- 其他檔案上傳程序的URL
  1316. '返回值:HTML編輯器
  1317. '示 例:
  1318. '**************************************************
  1319. Public Function HTML_MZYEDIT(ByVal MEIPath,ByVal GtimgPath,ByVal GtswfPath,ByVal GtwavPath,ByVal GtotherPath)
  1320.   Response.Write "<!--BEGIN 史上最小的線上HTML編輯器,開發者:馬政永,版本1.0 網站:[url]http://www.lovemycn.com[/url],本軟體為授權使用,如沒有馬政永授權,任何人或單位不得使用,否則將已侵犯知識產權罪論處!-->" & vbCrlf
  1321.   Response.Write "<style>img{border: 1 solid #DFDED2;}</style>" & vbCrlf
  1322.   Response.Write "<table onConTextMenu ='event.returnValue=false;'  style='"">宋體; font-size: 9pt;cursor:default;width:100%;height:100%;' bgcolor='#DFDED2'><tr><td style='width:100%;height:0%;'>" & vbCrlf
  1323.   Response.Write "<IMG BORDER='0' ALT='撤消' SRC='"&MEIPath&"undo.gif' NAME='Undo' ONCLICK='dojob(this.name);' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1324.   Response.Write "<IMG BORDER='0' ALT='恢復' SRC='"&MEIPath&"redo.gif' NAME='Redo' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1325.   Response.Write "<IMG BORDER='0' ALT='剪切' SRC='"&MEIPath&"cut.gif' NAME='Cut' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1326.   Response.Write "<IMG BORDER='0' ALT='拷貝' SRC='"&MEIPath&"copy.gif' NAME='Copy' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1327.   Response.Write "<IMG BORDER='0' ALT='粘貼' SRC='"&MEIPath&"paste.gif' NAME='Paste' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1328.   Response.Write "<IMG BORDER='0' ALT='刪除' SRC='"&MEIPath&"delete.gif' NAME='Delete' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1329.   Response.Write "<IMG BORDER='0' ALT='距左' SRC='"&MEIPath&"aleft.gif' NAME='JustifyLeft' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1330.   Response.Write "<IMG BORDER='0' ALT='距中' SRC='"&MEIPath&"center.gif' NAME='JustifyCenter' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1331.   Response.Write "<IMG BORDER='0' ALT='距右' SRC='"&MEIPath&"aright.gif' NAME='JustifyRight' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1332.   Response.Write "<IMG BORDER='0' SRC='"&MEIPath&"fgs.gif'> " & vbCrlf
  1333.   Response.Write "<IMG BORDER='0' ALT='加粗' SRC='"&MEIPath&"bold.gif' NAME='Bold' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1334.   Response.Write "<IMG BORDER='0' ALT='斜體' SRC='"&MEIPath&"italic.gif' NAME='Italic' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1335.   Response.Write "<IMG BORDER='0' ALT='下劃線' SRC='"&MEIPath&"underline.gif' NAME='Underline' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1336.   Response.Write "<IMG BORDER='0' ALT='超鏈' SRC='"&MEIPath&"wlink.gif' NAME='CreateLink' ONCLICK='dojob(this.name);' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1337.   Response.Write "<IMG BORDER='0' ALT='取消超鏈' SRC='"&MEIPath&"uwlink.gif' NAME='Unlink' ONCLICK='dojob(this.name);' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1338.   Response.Write "<IMG BORDER='0' ALT='取消格式' SRC='"&MEIPath&"untype.gif' NAME='RemoveFormat' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1339.   Response.Write "<IMG BORDER='0' ALT='水平線' SRC='"&MEIPath&"hr.gif' NAME='InsertHorizontalRule' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1340.   Response.Write "<IMG BORDER='0' ALT='縮進' SRC='"&MEIPath&"indent.gif' NAME='Indent' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1341.   Response.Write "<IMG BORDER='0' ALT='取消縮進' SRC='"&MEIPath&"outdent.gif' NAME='Outdent' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1342.   Response.Write "<IMG BORDER='0' ALT='數字標識' SRC='"&MEIPath&"numlist.gif' NAME='InsertOrderedList' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1343.   Response.Write "<IMG BORDER='0' ALT='點標識' SRC='"&MEIPath&"bullist.gif' NAME='InsertUnorderedList' ONCLICK='dojob(this.name);'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1344.   Response.Write "<IMG BORDER='0' ALT='加入圖片' SRC='"&MEIPath&"img.gif' NAME='InsertImage' ONCLICK='inputimage();'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1345.   Response.Write "<IMG BORDER='0' ALT='加入FLASH' SRC='"&MEIPath&"intole.gif' NAME='Inputother' ONCLICK='inputother();'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1346.   Response.Write "<IMG BORDER='0' ALT='加入影音檔案' SRC='"&MEIPath&"play.gif' NAME='Inputother' ONCLICK='inputotherpl();'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1347.   Response.Write "<IMG BORDER='0' ALT='加入檔案鏈接' SRC='"&MEIPath&"otlin.gif' NAME='Inputother' ONCLICK='inputotlink();'  onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1348.   Response.Write "<IMG BORDER='0' ALT='插入Excel工作表' SRC='"&MEIPath&"excel.gif' NAME='excel' ONCLICK='inputexcel();' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1349.   Response.Write "<IMG BORDER='0' ALT='去除Word格式' SRC='"&MEIPath&"wordtot.gif' NAME='wordtot' ONCLICK='wtohtm();' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1350.   Response.Write "<IMG BORDER='0' ALT='轉為TXT格式' SRC='"&MEIPath&"txt.gif' NAME='totxt' ONCLICK='atotxt();' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1351.   Response.Write "<IMG BORDER='0' ALT='查看源碼' SRC='"&MEIPath&"html.gif' NAME='edbh' ID='edbh' ONCLICK='htbhtxt();' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();'> " & vbCrlf
  1352.   Response.Write "<IMG BORDER='0' ALT='在IE裡預覽' SRC='"&MEIPath&"view.gif' NAME='bh' ONCLICK='view();' onmouseout='mmoo();' onmouseover='mmoo();' onmousedown='mmoo();' onmouseup='mmoo();' >" & vbCrlf
  1353.   Response.Write "<IMG BORDER='0' SRC='"&MEIPath&"fgs.gif'> " & vbCrlf
  1354.   Response.Write "<SELECT NAME='FontName' STYLE='width:94;font-size: 9pt;cursor:default;' ONCHANGE='doadv(this.name,this[this.selectedIndex].value);this.selectedIndex=0;'>" & vbCrlf
  1355.   Response.Write "<OPTION SELECTED>字體</OPTION><OPTION VALUE='宋體'>宋體</OPTION><OPTION VALUE='黑體'>黑體</OPTION><OPTION VALUE='楷體_GB2312'>楷體</OPTION><OPTION VALUE='Arial'>Arial</OPTION><OPTION VALUE='Arial Black'>Arial Black</OPTION><OPTION VALUE='Wingdings'>Wingdings</OPTION>" & vbCrlf
  1356.   Response.Write "</SELECT><SELECT NAME='FontSize' STYLE='width:50;font-size: 9pt;cursor:default;' ONCHANGE='doadv(this.name,this[this.selectedIndex].value);this.selectedIndex=0;'>" & vbCrlf
  1357.   Response.Write "<OPTION SELECTED>字號</OPTION><OPTION VALUE='7'>一號</OPTION><OPTION VALUE='6'>二號</OPTION><OPTION VALUE='5'>三號</OPTION><OPTION VALUE='4'>四號</OPTION><OPTION VALUE='3'>五號</OPTION><OPTION VALUE='2'>六號</OPTION><OPTION VALUE='1'>七號</OPTION>" & vbCrlf
  1358.   Response.Write "</SELECT><SELECT NAME='ForeColor' STYLE='width:50;font-size: 9pt;cursor:default;' ONCHANGE='doadv(this.name,this[this.selectedIndex].value);this.selectedIndex=0;'>" & vbCrlf
  1359.   Response.Write "<OPTION SELECTED VALUE='#000000'>字色</OPTION><OPTION VALUE='#FFFFFF' STYLE='color:#FFFFFF'>●</OPTION><OPTION VALUE='#000000' STYLE='color:#000000'>●</OPTION><OPTION VALUE='#800000' STYLE='color:#800000'>●</OPTION><OPTION VALUE='#FF0000' STYLE='color:#FF0000'>●</OPTION><OPTION VALUE='#000080' STYLE='color:#000080'>●</OPTION>" & vbCrlf
  1360.   Response.Write "</SELECT><font color='#3D3D3D'> 表格[<INPUT TYPE='text' NAME='T_H' SIZE='3' VALUE='2' style='"">宋體; font-size: 9pt'>行<INPUT TYPE='text' NAME='T_L' SIZE='3' VALUE='2' style='"">宋體; font-size: 9pt'>列<INPUT TYPE='button' VALUE='插入' NAME='B1' ONCLICK='InsertOle(inputtable(T_H.value,T_L.value));' style='"">宋體; font-size: 9pt'>]</font> <IMG BORDER='0' SRC='"&MEIPath&"fgs.gif'>" & vbCrlf
  1361.   Response.Write "</td></tr><tr><td style='width:100%;height:100%;'>"
  1362.   Response.Write "<IFRAME SRC='about:blank' ID='MZYEDITWINDOW' style='width:100%;height:100%;'></IFRAME><div id='Temp_HTML' style='VISIBILITY: hidden; OVERFLOW: hidden; POSITION: absolute; WIDTH: 1px; HEIGHT: 1px'></div>" & vbCrlf
  1363.   Response.Write "</td></tr></table>" & vbCrlf
  1364.   Response.Write "<SCRIPT language='javascript'>" & vbCrlf
  1365.   Response.Write "var Htmlmode='Y';" & vbCrlf
  1366.   Response.Write "var Htmldata='';" & vbCrlf
  1367.   Response.Write "MZYEDITWINDOW.document.designMode='On';MZYEDITWINDOW.focus();" & vbCrlf
  1368.   Response.Write "var pjob;" & vbCrlf
  1369.   Response.Write "function mmoo()" & vbCrlf
  1370.   Response.Write "{pjob=(window.event.type).toUpperCase();" & vbCrlf
  1371.   Response.Write "if ((pjob=='MOUSEOVER') || (pjob=='MOUSEUP')){event.srcElement.style.borderLeft='1 solid #808080';" & vbCrlf
  1372.   Response.Write "event.srcElement.style.borderRight='1 solid #FFFFFF';" & vbCrlf
  1373.   Response.Write "event.srcElement.style.borderTop='1 solid #FFFFFF';" & vbCrlf
  1374.   Response.Write "event.srcElement.style.borderBottom='1 solid #808080';}" & vbCrlf
  1375.   Response.Write "if ((pjob=='MOUSEOUT') || (pjob=='MOUSEDOWN')){event.srcElement.style.border='1 solid #DFDED2';}" & vbCrlf
  1376.   Response.Write "}" & vbCrlf
  1377.   Response.Write "function dojob(doname)" & vbCrlf
  1378.   Response.Write "{MZYEDITWINDOW.focus();" & vbCrlf
  1379.   Response.Write "ckmode();MZYEDITWINDOW.document.execCommand(doname);}" & vbCrlf
  1380.   Response.Write "function doadv(doname,jobtxt)" & vbCrlf
  1381.   Response.Write "{MZYEDITWINDOW.focus();" & vbCrlf
  1382.   Response.Write "ckmode();MZYEDITWINDOW.document.execCommand(doname,false,jobtxt);}" & vbCrlf
  1383.   Response.Write "function InsertOle(date)" & vbCrlf
  1384.   Response.Write "{ckmode();MZYEDITWINDOW.focus();MZYEDITWINDOW.document.selection.createRange().pasteHTML(date);}" & vbCrlf
  1385.   Response.Write "function htbhtxt()" & vbCrlf
  1386.   Response.Write "{MZYEDITWINDOW.focus();" & vbCrlf
  1387.   Response.Write "if (Htmlmode=='Y'){MZYEDITWINDOW.document.body.innerText=MZYEDITWINDOW.document.body.innerHTML;Htmlmode='N';edbh.alt='恢復HTML編輯狀態';" & vbCrlf
  1388.   Response.Write "}else{MZYEDITWINDOW.document.body.innerHTML=MZYEDITWINDOW.document.body.innerText;Htmlmode='Y';edbh.alt='查看源碼';}}" & vbCrlf
  1389.   Response.Write "function ckmode()" & vbCrlf
  1390.   Response.Write "{if (Htmlmode=='N'){MZYEDITWINDOW.document.body.innerHTML=MZYEDITWINDOW.document.body.innerText;Htmlmode='Y';}" & vbCrlf
  1391.   Response.Write "}" & vbCrlf
  1392.   Response.Write "function view(){testwin=open(''、'testwin','status=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes');testwin.document.open();testwin.document.write(MZYEDITWINDOW.document.body.innerHTML);}" & vbCrlf
  1393.   Response.Write "function inputexcel(){s='<OBJECT id=Spreadsheet1 codeBase=file:\Bobsoftwareoffice2000msowc.cab height=250 width=100% classid=clsid:0002E510-0000-0000-C000-000000000046></OBJECT>';InsertOle(s);}" & vbCrlf
  1394.   Response.Write "function inputtable(h,l)" & vbCrlf
  1395.   Response.Write "{" & vbCrlf
  1396.   Response.Write "s='<table border=1 width=100% cellspacing=0 cellpadding=0>';" & vbCrlf
  1397.   Response.Write "for(i=1 ;i<=l;i++){s=s+'<tr>';for(j=1;j<=h;j++)s=s+'<td> </td>';s=s+'</tr>';}" & vbCrlf
  1398.   Response.Write "s=s+'</table>';" & vbCrlf
  1399.   Response.Write "return s;" & vbCrlf
  1400.   Response.Write "}" & vbCrlf
  1401.   Response.Write "function inputimage()" & vbCrlf
  1402.   Response.Write "{" & vbCrlf
  1403.   Response.Write "var temp=showModalDialog('"&GtimgPath&"',''、'dialogWidth:30em; dialogHeight:26em; status:0');" & vbCrlf
  1404.   Response.Write "MZYEDITWINDOW.focus();" & vbCrlf
  1405.   Response.Write "if ((temp!==null) && (temp!==''))" & vbCrlf
  1406.   Response.Write "doadv('InsertImage',temp);" & vbCrlf
  1407.   Response.Write "}" & vbCrlf
  1408.   Response.Write "function inputother()" & vbCrlf
  1409.   Response.Write "{" & vbCrlf
  1410.   Response.Write "var temp=showModalDialog('"&GtswfPath&"',''、'dialogWidth:30em; dialogHeight:26em;status:0');" & vbCrlf
  1411.   Response.Write "var tempa="&chr(34)&"<p align='center'><a onclick='MZYmovie.Play();' STYLE='cursor:hand;'>播放</a> <a onclick='MZYmovie.StopPlay();'  STYLE='cursor:hand;'>暫停</a> <a onclick=\"&chr(34)&"MZYmovie.width='600';MZYmovie.height='600';\"&chr(34)&"  STYLE='cursor:hand;'>最大化</a> <a onclick=\"&chr(34)&"MZYmovie.width='500';MZYmovie.height='400';\"&chr(34)&"  STYLE='cursor:hand;'>恢復</a><br><table NAME='FFWH' ID='FFWH'  border='0' width='100%' height='100%' cellspacing='0' cellpadding='0'><tr><td width='100%' height='90%' valign='middle' align='center'>"&chr(34)&";" & vbCrlf
  1412.   Response.Write "var tempb="&chr(34)&"<EMBED SRC='"&chr(34)&";" & vbCrlf
  1413.   Response.Write "var tempc="&chr(34)&"' WIDTH='500' HEIGHT='400' QUALITY='high' PLUGINSPAGE='http://www.macromedia.com/go/getflashplayer' TYPE='application/x-shockwave-flash' ID='MZYmovie' NAME='MZYmovie' MENU='false'>"&chr(34)&";" & vbCrlf
  1414.   Response.Write "var tempd="&chr(34)&"</td></tr></table></p>"&chr(34)&";" & vbCrlf
  1415.   Response.Write "MZYEDITWINDOW.focus();" & vbCrlf
  1416.   Response.Write "if ((temp!==null) && (temp!==''))" & vbCrlf
  1417.   Response.Write "temp=tempa+tempb+temp+tempc+tempd;" & vbCrlf
  1418.   Response.Write "InsertOle(temp);" & vbCrlf
  1419.   Response.Write "}" & vbCrlf
  1420.   Response.Write "function inputotherpl()" & vbCrlf
  1421.   Response.Write "{" & vbCrlf
  1422.   Response.Write "var pl_w = prompt('錄入影片的寬度'、'100');" & vbCrlf
  1423.   Response.Write "var pl_h = prompt('錄入影片的高度'、'100');" & vbCrlf
  1424.   Response.Write "var tempwh="&chr(34)&"WIDTH="&chr(34)&"+pl_w+"&chr(34)&" HEIGHT="&chr(34)&"+pl_h;"
  1425.   Response.Write "var temp=showModalDialog('"&GtwavPath&"',''、'dialogWidth:30em; dialogHeight:26em; status:0');" & vbCrlf
  1426.   Response.Write "var temprma="&chr(34)&"<OBJECT CLASSID='clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA' ID='MZYMPL' "&chr(34)&";"
  1427.   Response.Write "var temprmb="&chr(34)&"><PARAM NAME='SRC' VALUE='"&chr(34)&";"
  1428.   Response.Write "var temprmc="&chr(34)&"'></OBJECT>"&chr(34)&";"
  1429.   Response.Write "var tempmpa="&chr(34)&"<OBJECT CLASSID='clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6' ID='MZYMPL'"&chr(34)&";"
  1430.   Response.Write "var tempmpb="&chr(34)&"><PARAM NAME='URL' VALUE='"&chr(34)&";"
  1431.   Response.Write "var tempmpc="&chr(34)&"'></OBJECT>"&chr(34)&";"
  1432.   Response.Write "MZYEDITWINDOW.focus();" & vbCrlf
  1433.   Response.Write "if ((temp!==null) && (temp!==''))" & vbCrlf
  1434.   Response.write "var pllx = confirm('是否使用Windows media player?')"&vbCrlf
  1435.   Response.write "if (pllx != '0'){"&vbCrlf
  1436.   Response.Write "temp=tempmpa+'  '+tempwh+'  '+tempmpb+temp+tempmpc;"&vbCrlf
  1437.   Response.Write "}else{"&vbCrlf
  1438.   Response.Write "temp=temprma+'  '+tempwh+'  '+temprmb+temp+temprmc;"&vbCrlf
  1439.   Response.Write "}"&vbCrlf
  1440.   Response.Write "InsertOle(temp);" & vbCrlf
  1441.   Response.Write "}" & vbCrlf
  1442.   Response.Write "function inputotlink()" & vbCrlf
  1443.   Response.Write "{" & vbCrlf
  1444.   Response.Write "var linkname = prompt('錄入鏈接文字說明'、'點這下載');" & vbCrlf
  1445.   Response.Write "var temp=showModalDialog('"&GtotherPath&"',''、'dialogWidth:30em; dialogHeight:26em; status:0');" & vbCrlf
  1446.   Response.Write "MZYEDITWINDOW.focus();" & vbCrlf
  1447.   Response.Write "if ((temp!==null) && (temp!=='')){" & vbCrlf
  1448.   Response.Write "temp="&chr(34)&"<a href="&chr(34)&"+temp+"&chr(34)&" _fcksavedurl=""&chr(34)&"+temp+"&chr(34)&"" _fcksavedurl=""&chr(34)&"+temp+"&chr(34)&"" _fcksavedurl=""&chr(34)&"+temp+"&chr(34)&"" target='_blank'>"&chr(34)&"+linkname+"&chr(34)&"</a>"&chr(34)&";" & vbCrlf
  1449.   Response.Write "InsertOle(temp);}" & vbCrlf
  1450.   Response.Write "}" & vbCrlf
  1451.   Response.Write "function HTMLEncode(text){" & vbCrlf
  1452.   Response.Write "text = text.replace(/&/g、'&') ;" & vbCrlf
  1453.   Response.Write "text = text.replace(/""/g、'"') ;" & vbCrlf
  1454.   Response.Write "text = text.replace(/</g、'<') ;" & vbCrlf
  1455.   Response.Write "text = text.replace(/>/g、'>') ;" & vbCrlf
  1456.   Response.Write "text = text.replace(/'/g、'』') ;" & vbCrlf
  1457.   Response.Write "text = text.replace(/\ /g,' ');" & vbCrlf
  1458.   Response.Write "text = text.replace(/\n/g,'<br>');" & vbCrlf
  1459.   Response.Write "text = text.replace(/\t/g,'    ');" & vbCrlf
  1460.   Response.Write "return text;" & vbCrlf
  1461.   Response.Write "}" & vbCrlf
  1462.   Response.Write "function cleanword(text) {" & vbCrlf
  1463.   Response.Write "text = text.replace(/<\/?SPAN[^>]*>/gi、'' );" & vbCrlf
  1464.   Response.Write "text = text.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi、'<$1$3') ;" & vbCrlf
  1465.   Response.Write "text = text.replace(/<(\w[^>]*)([^""]*)""([^>]*)/gi、'<$1$3') ;" & vbCrlf
  1466.   Response.Write "text = text.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi、'<$1$3') ;" & vbCrlf
  1467.   Response.Write "text = text.replace(/<[url=file://%3F/?xml[^]\\?\?xml[^>]*>/gi[/url]、'') ;" & vbCrlf
  1468.   Response.Write "text = text.replace(/<\/?\w+:[^>]*>/gi、'') ;" & vbCrlf
  1469.   Response.Write "text = text.replace(/ /、' ' );" & vbCrlf
  1470.   Response.Write "var re = new RegExp('(<P)([^>]*>.*?)(<\/P>)','gi') ;" & vbCrlf
  1471.   Response.Write "text = text.replace( re、'<div$2</div>' ) ;" & vbCrlf
  1472.   Response.Write "return text;" & vbCrlf
  1473.   Response.Write "}" & vbCrlf
  1474.   Response.Write "function atotxt()" & vbCrlf
  1475.   Response.Write "{if ( confirm('如果轉為文本格式將遺失所有排版內容,請確認是否這樣做?')){MZYEDITWINDOW.focus();" & vbCrlf
  1476.   Response.Write "MZYEDITWINDOW.document.body.innerHTML=HTMLEncode(MZYEDITWINDOW.document.body.innerText);}}" & vbCrlf
  1477.   Response.Write "function wtohtm()" & vbCrlf
  1478.   Response.Write "{if ( confirm('是否要將WORD格式去除?')){MZYEDITWINDOW.focus();" & vbCrlf
  1479.   Response.Write "MZYEDITWINDOW.document.body.innerHTML=cleanword(MZYEDITWINDOW.document.body.innerHTML);}}" & vbCrlf
  1480.   Response.Write "function CKjtb() {" & vbCrlf
  1481.   Response.Write "var oDiv = document.getElementById('Temp_HTML');" & vbCrlf
  1482.   Response.Write "oDiv.innerHTML = '' ;" & vbCrlf
  1483.   Response.Write "var oTextRange = document.body.createTextRange() ;" & vbCrlf
  1484.   Response.Write "oTextRange.moveToElementText(oDiv) ;" & vbCrlf
  1485.   Response.Write "oTextRange.execCommand('Paste') ;" & vbCrlf
  1486.   Response.Write "var sData = oDiv.innerHTML ;" & vbCrlf
  1487.   Response.Write "oDiv.innerHTML = '' ;" & vbCrlf
  1488.   Response.Write "var re = /<\w[^>]* class=""?MsoNormal""?/gi ; var nsData=sData;" & vbCrlf
  1489.   Response.Write "if ( re.test(sData)){" & vbCrlf
  1490.   Response.Write "if (confirm( '你要粘貼的內容好像是從Word中拷出來的,是否要先清除Word格式再粘貼?' )){" & vbCrlf
  1491.   Response.Write "nsData=cleanword(sData) ;" & vbCrlf
  1492.   Response.Write "}" & vbCrlf
  1493.   Response.Write "}" & vbCrlf
  1494.   Response.Write "MZYEDITWINDOW.document.selection.createRange().pasteHTML(nsData);" & vbCrlf
  1495.   Response.Write "return false ;" & vbCrlf
  1496.   Response.Write "}" & vbCrlf
  1497.   Response.Write "setTimeout(""MZYEDITWINDOW.document.body.onpaste =CKjtb;"",1000);" & vbCrlf
  1498.   Response.Write "</SCRIPT>" & vbCrlf
  1499.   Response.Write "<!--END 史上最小的線上HTML編輯器,開發者:馬政永,版本1.0 網站:[url]http://www.lovemycn.com[/url],本軟體為授權使用,如沒有馬政永授權,任何人或單位不得使用,否則將已侵犯知識產權罪論處!-->" & vbCrlf
  1500. End Function
  1501. '**************************************************
  1502. '函數ID:0039[判斷是否奇數]
  1503. '函數名:Is_JS
  1504. '作 用:判斷是否奇數
  1505. '參 數:num  ---- 要判斷的數
  1506. '返回值:返回True,否則False
  1507. '**************************************************
  1508. Public Function Is_JS(ByVal num)
  1509.   n=num mod 2
  1510.   if n=1 then
  1511.      Is_JS=true
  1512.   else
  1513.      Is_JS=false
  1514.   end if
  1515. end function
  1516. '**************************************************
  1517. '函數ID:0040[生成驗證碼圖像BMP]
  1518. '函數名:GrapCode
  1519. '作 用:生成驗證碼圖像
  1520. '參 數:MZYGCstr  ---- 要生成的圖像的字符
  1521. '參 數:Noisy     ---- 噪點率(大於0的整數)
  1522. '參 數:BkColor   ---- 圖案背景色(格式:R|G|B)
  1523. '參 數:FnColor   ---- 字符顏色(格式:R|G|B)
  1524. '參 數:NoColor   ---- 噪點顏色(格式:R|G|B)
  1525. '返回值:驗證碼圖像
  1526. '示 例:Response.Write "<img src='" &GrapCode(Request("n"),6,"10|40|100","255|255|255","100|100|100")&"'>"
  1527. '**************************************************
  1528. Public Function GrapCode(ByVal MZYGCstr,ByVal Noisy,ByVal BkColor,ByVal FnColor,ByVal NoColor)
  1529.   If Len(Trim(MZYGCstr))>1 Then
  1530.   Dim imgsize,pimgsize
  1531.   Const cAmount = 36
  1532.   Const cCode = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  1533.   Dim ColorV(2)
  1534.   tmp=""
  1535.   tmp=Split(BkColor,"|")
  1536.   ColorV(0) =""
  1537.   For i = LBound(tmp) To UBound(tmp)
  1538.       ColorV(0) = ColorV(0) & ChrB(CInt(tmp(i)))
  1539.   Next
  1540.   tmp=""
  1541.   tmp=Split(FnColor,"|")
  1542.   ColorV(1) =""
  1543.   For i = LBound(tmp) To UBound(tmp)
  1544.       ColorV(1) = ColorV(1) & ChrB(CInt(tmp(i)))
  1545.   Next
  1546.   tmp=""
  1547.   tmp=Split(NoColor,"|")
  1548.   ColorV(2) =""
  1549.   For i = LBound(tmp) To UBound(tmp)
  1550.       ColorV(2) = ColorV(2) & ChrB(CInt(tmp(i)))
  1551.   Next
  1552.   imgsize=10*Len(MZYGCstr)*10*24/8
  1553.   pimgsize=10*Len(MZYGCstr)*10*24/8
  1554.   If Is_JS(Len(MZYGCstr)) Then
  1555.      imgsize=imgsize+74
  1556.      pimgsize=pimgsize+20
  1557.   Else
  1558.      imgsize=imgsize+54
  1559.   End If
  1560.   imgsize =Hex(imgsize)
  1561.   pimgsize=Hex(pimgsize)
  1562.   imgsize =Cstr(imgsize)
  1563.   pimgsize=Cstr(pimgsize)
  1564.   'dword對齊處理
  1565.   Dim length、byteCount,BytePatch
  1566.   length = Len(MZYGCstr)
  1567.   byteCount=((length*10*3) mod 4)
  1568.   If byteCount>0 Then
  1569.      byteCount= 4 - ((length*10*3) Mod 4)
  1570.      For i=1 To byteCount : BytePatch = BytePatch & chrB(00) : Next
  1571.   End If
  1572.   tmp=""
  1573.   For i=1 to len(imgsize) step 2
  1574.       If (i < len(imgsize)) Then
  1575.          tmp=tmp & Mid(imgsize,i,2) & "|"
  1576.       Else
  1577.          tmp=tmp & Mid(imgsize,i,2)
  1578.       End If
  1579.   Next
  1580.   imgsize=StrReverse(tmp)
  1581.   tmp=""
  1582.   tmp=Split(imgsize,"|")
  1583.   imgsize=""
  1584.   For i = 0 To 3
  1585.       If (i <= UBound(tmp)) Then
  1586.          imgsize=imgsize & ChrB("&H"&tmp(i))
  1587.       Else
  1588.          imgsize=imgsize & ChrB(0)
  1589.       End If
  1590.   Next
  1591.   ptmp=""
  1592.   For i=1 to len(pimgsize) step 2
  1593.       If (i < len(pimgsize)) Then
  1594.          ptmp=ptmp & Mid(pimgsize,i,2) & "|"
  1595.       Else
  1596.          ptmp=ptmp & Mid(pimgsize,i,2)
  1597.       End If
  1598.   Next
  1599.   pimgsize=StrReverse(ptmp)
  1600.   ptmp=""
  1601.   ptmp=Split(pimgsize,"|")
  1602.   pimgsize=""
  1603.   For i = 0 To 3
  1604.       If (i <= UBound(ptmp)) Then
  1605.          pimgsize=pimgsize & ChrB("&H"&ptmp(i))
  1606.       Else
  1607.          pimgsize=pimgsize & ChrB(0)
  1608.       End If
  1609.   Next
  1610.   MZYGCstr=UCase(MZYGCstr)
  1611.   tmp=""
  1612.   For i = 0 To (Len(MZYGCstr)-1)
  1613.       If i<>(Len(MZYGCstr)-1) Then
  1614.          tmp =tmp & InStr(cCode,Mid(MZYGCstr,i+1,1))-1 &"|"
  1615.       Else
  1616.          tmp =tmp & InStr(cCode,Mid(MZYGCstr,i+1,1))-1
  1617.       End If
  1618.   Next
  1619.   Dim vCode
  1620.   vCode=Split(tmp,"|")
  1621.   Response.Expires = -9999
  1622.   Response.AddHeader "pragma"、"no-cache"
  1623.   Response.AddHeader "cache-ctrol"、"no-cache"
  1624.   Response.Buffer = TRUE
  1625.   Response.C
  1626.   Response.Flush
  1627.   Response.BinaryWrite ChrB(66) & ChrB(77) & imgsize & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10*Len(MZYGCstr)) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(12) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)
  1628.   Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & pimgsize & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0)
  1629.   Dim NsD(35)
  1630.   NsD(0)  = "111111111111100001111101111011110111101111010010111101001011110100101111010010111101111011110111101111100001111111111111"
  1631.   NsD(1)  = "111111111111110111111100011111111101111111110111111111011111111101111111110111111111011111111101111111000001111111111111"
  1632.   NsD(2)  = "111111111111100001111101111011110111101111111110111111110111111110111111110111111110111111110111101111000000111111111111"
  1633.   NsD(3)  = "111111111111100001111101111011110111101111111101111111001111111111011111111110111101111011110111101111100001111111111111"
  1634.   NsD(4)  = "111111111111111011111111101111111100111111101011111101101111110110111111000000111111101111111110111111110000111111111111"
  1635.   NsD(5)  = "111111111111000000111101111111110111111111010001111100111011111111101111111110111101111011110111101111100001111111111111"
  1636.   NsD(6)  = "111111111111110001111110111011110111111111011111111101000111110011101111011110111101111011110111101111100001111111111111"
  1637.   NsD(7)  = "111111111111000000111101110111110111011111111011111111101111111101111111110111111111011111111101111111110111111111111111"
  1638.   NsD(8)  = "111111111111100001111101111011110111101111011110111110000111111011011111011110111101111011110111101111100001111111111111"
  1639.   NsD(9)  = "111111111111100011111101110111110111101111011110111101110011111000101111111110111111111011110111011111100011111111111111"
  1640.   NsD(10) = "111111111111110111111111011111111010111111101011111110101111111010111111000001111101110111110111011110001000111111111111"
  1641.   NsD(11) = "111111111110000001111101111011110111101111011101111100001111110111011111011110111101111011110111101110000001111111111111"
  1642.   NsD(12) = "111111111111100000111101111011101111101110111111111011111111101111111110111111111011111011110111011111100011111111111111"
  1643.   NsD(13) = "111111111110000011111101110111110111101111011110111101111011110111101111011110111101111011110111011110000011111111111111"
  1644.   NsD(14) = "111111111110000001111101111011110110111111011011111100001111110110111111011011111101111111110111101110000001111111111111"
  1645.   NsD(15) = "111111111110000001111101111011110110111111011011111100001111110110111111011011111101111111110111111110001111111111111111"
  1646.   NsD(16) = "111111111111100001111101110111101111011110111111111011111111101111111110111000111011110111110111011111100011111111111111"
  1647.   NsD(17) = "111111111110001000111101110111110111011111011101111100000111110111011111011101111101110111110111011110001000111111111111"
  1648.   NsD(18) = "111111111111000001111111011111111101111111110111111111011111111101111111110111111111011111111101111111000001111111111111"
  1649.   NsD(19) = "111111111111100000111111101111111110111111111011111111101111111110111111111011111111101111101110111110000111111111111111"
  1650.   NsD(20) = "111111111110001000111101110111110110111111010111111100011111110101111111011011111101101111110111011110001000111111111111"
  1651.   NsD(21) = "111111111110001111111101111111110111111111011111111101111111110111111111011111111101111111110111101110000000111111111111"
  1652.   NsD(22) = "111111111110001000111100100111110010011111001001111101010111110101011111010101111101010111110101011110010100111111111111"
  1653.   NsD(23) = "111111111110001000111100110111110011011111010101111101010111110101011111011001111101100111110110011110001101111111111111"
  1654.   NsD(24) = "111111111111100011111101110111101111101110111110111011111011101111101110111110111011111011110111011111100011111111111111"
  1655.   NsD(25) = "111111111110000001111101111011110111101111011110111100000111110111111111011111111101111111110111111110001111111111111111"
  1656.   NsD(26) = "111111111111100011111101110111101111101110111110111011111011101111101110111110111010011011110110011111100010111111111111"
  1657.   NsD(27) = "111111111110000011111101110111110111011111011101111100001111110101111111011011111101101111110111011110001100111111111111"
  1658.   NsD(28) = "111111111111100000111101111011110111101111011111111110011111111110011111111110111101111011110111101111000001111111111111"
  1659.   NsD(29) = "111111111110000000111011011011111101111111110111111111011111111101111111110111111111011111111101111111100011111111111111"
  1660.   NsD(30) = "111111111110001000111101110111110111011111011101111101110111110111011111011101111101110111110111011111100011111111111111"
  1661.   NsD(31) = "111111111110001000111101110111110111011111011101111110101111111010111111101011111110101111111101111111110111111111111111"
  1662.   NsD(32) = "111111111110010100111101010111110101011111010101111101010111110010011111101011111110101111111010111111101011111111111111"
  1663.   NsD(33) = "111111111110001000111101110111111010111111101011111111011111111101111111101011111110101111110111011110001000111111111111"
  1664.   NsD(34) = "111111111110001000111101110111110111011111101011111110101111111101111111110111111111011111111101111111100011111111111111"
  1665.   NsD(35) = "111111111111000000111101110111111111011111111011111111101111111101111111110111111110111111111011101111000000111111111111"
  1666.   Dim a,b,c
  1667.   For a=11 to 0 Step -1
  1668.       For c=0 to UBound(vCode)
  1669.           For b=1 to 10
  1670.               If Rnd * 99 + 1 < Noisy Then
  1671.                  Response.BinaryWrite ColorV(2)
  1672.               Else
  1673.                  Response.BinaryWrite ColorV(Mid(NsD(CInt(vCode(c))),a*10+b,1))
  1674.               End If
  1675.           Next
  1676.       Next
  1677.       If byteCount>0 Then Response.BinaryWrite BytePatch
  1678.   Next
  1679.   End If
  1680. End Function
  1681. '**************************************************
  1682. '函數ID:0041[生成隨機密碼]
  1683. '函數名:MakeRndPass
  1684. '作 用:生成隨機密碼
  1685. '參 數:passlen  ---- 要生成的密碼長度
  1686. '參 數:passtype ---- 要生成的密碼類型
  1687. '返回值:驗證生成的隨機密碼
  1688. '類型解釋:
  1689. 'passfull       (所在可用字符 如[email=「90!@#$%]「90!@#$%[/email]」)
  1690. 'passnumber     (純數字)
  1691. 'passspecial    (非常用字符)
  1692. 'passCharNumber (所有字母及數字)
  1693. 'passUpperCharNumber (大寫字母數字)
  1694. 'passLowerCharNumber (小寫字母數字)
  1695. 'passChar       (所有大小寫字母)
  1696. 'passUpperChar  (所有大寫字母)
  1697. 'passLowerChar  (所有小寫字母)
  1698. '示 例:MakeRndPass(4,"passUpperCharNumber")
  1699. '**************************************************
  1700. Public Function MakeRndPass(ByVal passlen,ByVal passtype)
  1701.   dim passFull,passNumber,passSpecial,passCharNumber,passChar,pass,passUpperCharNumber,passLowerCharNumber,passUpperChar,passLowerChar,ii,jj
  1702.   passFull = "[email=1234567890!@#$%^&*()[];]1234567890!@#$%^&*()[];',./{}:?`~-=\_+|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[/email]"
  1703.   passNumber = "1234567890"
  1704.   passSpecial = "[email=!@#$%^&*()[];]!@#$%^&*()[];',./{}:?`~-=\[/email]_+|"
  1705.   passCharNumber = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  1706.   passUpperCharNumber = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  1707.   passLowerCharNumber = "abcdefghijklmnopqrstuvwxyz1234567890"
  1708.   passChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  1709.   passUpperChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  1710.   passLowerChar = "abcdefghijklmnopqrstuvwxyz"
  1711.   select case lcase(trim(passType))
  1712.   case "passfull"
  1713.         pass = passFull
  1714.   case "passnumber"
  1715.         pass = passNumber
  1716.   case "passspecial"
  1717.         pass = passSpecial
  1718.   case "passcharnumber"
  1719.         pass = passCharNumber
  1720.   case "passchar"
  1721.         pass = passChar
  1722.   case "passupperchar"
  1723.         pass = passUpperChar
  1724.   case "passlowerchar"
  1725.         pass = passLowerChar
  1726.   case "passuppercharnumber"
  1727.         pass = passUpperCharNumber
  1728.   case "passlowercharnumber"
  1729.         pass = passLowerCharNumber
  1730.   case else
  1731.         pass = passlowercharnumber
  1732.   end select
  1733.   makeRndPass=""
  1734.   for ii=1 to cint(passlen)
  1735.       randomize
  1736.       jj = int(rnd()*len(pass)+1)
  1737.       makeRndPass = cstr(makeRndPass) & mid(pass,jj,1)
  1738.   next
  1739. End Function
  1740. '**************************************************
  1741. '函數ID:0042[字符加解密]
  1742. '函數名:addmw
  1743. '作 用:字符加解密
  1744. '參 數:nyw  ---- 被加密的字符
  1745. '返回值:加密後的字符
  1746. '示 例:
  1747. '**************************************************
  1748. Public Function addmw(ByVal nyw)
  1749.   addmw=""
  1750.   On Error GoTo 0
  1751.   On Error Resume Next
  1752.   rndChararray = "abcdefghijklmnopqrstuvwxyz1234567890"
  1753.   randomize
  1754.   keya=Mid(rndChararray,int(rnd()*35)+1,1)
  1755.   keyb=Mid(rndChararray,int(rnd()*35)+1,1)
  1756.   temp=""
  1757.   newStr=""
  1758.   For i=1 to len(nyw)
  1759.       temp=Mid(nyw,i,1)
  1760.       bLowChr=AscB(MidB(temp、1、1)) Xor asc(keya)
  1761.       bHigChr=AscB(MidB(temp、2、1)) Xor asc(keyb)
  1762.       newStr=newStr & ChrB(bLowChr) & ChrB(bHigChr)
  1763.   Next
  1764.   bLowChr=AscB(MidB(keyb、1、1)) Xor 100
  1765.   bHigChr=AscB(MidB(keyb、2、1)) Xor 20
  1766.   keyb=ChrB(bLowChr) & ChrB(bHigChr)
  1767.   bLowChr=AscB(MidB(keya、1、1)) Xor 128
  1768.   bHigChr=AscB(MidB(keya、2、1)) Xor 18
  1769.   keya=ChrB(bLowChr) & ChrB(bHigChr)
  1770.   newStr=keyb & keya & StrReverse(newStr)
  1771.   If Err.Number = 0 Then
  1772.        addmw=CodeCookie(newStr)
  1773.   End If
  1774.   On Error GoTo 0
  1775. End Function
  1776. '**************************************************
  1777. '函數ID:0043[解密字符加解密]
  1778. '函數名:exmw
  1779. '作 用:解密字符加解密
  1780. '參 數:nmw  ---- 加密的字符
  1781. '返回值:解密加密後的字符
  1782. '示 例:
  1783. '**************************************************
  1784. Public Function exmw(ByVal nmw)
  1785.   exmw=""
  1786.   On Error GoTo 0
  1787.   On Error Resume Next
  1788.   Dim keya,keyb,newStr,temp
  1789.   nmw=DecodeCookie(nmw)
  1790.   keya=Mid(nmw,2,1)
  1791.   keyb=Mid(nmw,1,1)
  1792.   bLowChr=ChrB(AscB(MidB(keya、1、1)) Xor 128)
  1793.   bHigChr=ChrB(AscB(MidB(keya、2、1)) Xor 18)
  1794.   keya=bLowChr & bHigChr
  1795.   bLowChr=ChrB(AscB(MidB(keyb、1、1)) Xor 100)
  1796.   bHigChr=ChrB(AscB(MidB(keyb、2、1)) Xor 20)
  1797.   keyb=bLowChr & bHigChr
  1798.   Str=StrReverse(Mid(nmw,3,len(nmw)))
  1799.   newStr=""
  1800.   temp=""
  1801.   For i=1 to len(Str)
  1802.       temp=Mid(Str,i,1)
  1803.       bLowChr=AscB(MidB(temp、1、1)) Xor asc(keya)
  1804.       bHigChr=AscB(MidB(temp、2、1)) Xor asc(keyb)
  1805.       newStr=newStr & ChrB(bLowChr) & ChrB(bHigChr)
  1806.   Next
  1807.   If Err.Number = 0 Then
  1808.        exmw=newStr
  1809.   End If
  1810.   On Error GoTo 0
  1811. End Function
  1812. '**************************************************
  1813. '函數ID:0044[創建資料表]
  1814. '函數名:CreatTable
  1815. '作 用:創建資料表
  1816. '參 數:ConnStrs    ---- 資料庫鏈接字串
  1817. '參 數:Tabnamestr  ---- 資料表名稱
  1818. '參 數:CvArrstr    ---- 字段表 (寫法: Fname1#Type#Len#Defvalue|Fname1#Type#Len#Defvalue|...) 最後一個不要寫「|」
  1819. '參 數:SqlType     ---- Sql語句類型 (0 Access 1 Mssqlserver)
  1820. ' Fname,Type,Len,Defvalue 說明:字段名稱,字段類型,字段長度,預設值
  1821. '字段類型 Type C/c 字符 T/t 文本 I/i 二進制 D/d 日期 M/m 關鍵字(字符型) A/a 關鍵字自動編號(數值型) N/n 數值(float) Z/z 數值(int)
  1822. '返回值:如果建立成功返回 True 否則 False
  1823. '示 例:CreatTable(basicDB(3),"cs","fa#t##|fb#c#20#a|fc#n##5",0)
  1824. '**************************************************
  1825. Public Function CreatTable(ByVal ConnStrs,ByVal Tabnamestr,ByVal CvArrstr,ByVal SqlType)
  1826.   CreatTable=False
  1827.   On Error GoTo 0
  1828.   On Error Resume Next
  1829.   Dim filsarry,NeFilarry,Filstr,spfstr,templx,def_kh_l,def_kh_r,TempSqlStr
  1830.   def_kh_l=""
  1831.   def_kh_r=""
  1832.   Filstr=""
  1833.   spfstr=""
  1834.   TempSqlStr=""
  1835.   filsarry=Split(CvArrstr,"|")
  1836.   For ai = LBound(filsarry) To UBound(filsarry)
  1837.       NeFilarry=Split(filsarry(ai),"#")
  1838.       templx=""
  1839.       If UCase(NeFilarry(1))="C" Then templx="varchar(" & NeFilarry(2) & ")"
  1840.       If UCase(NeFilarry(1))="T" Then templx="TEXT"
  1841.       If UCase(NeFilarry(1))="I" Then templx="image"
  1842.       If UCase(NeFilarry(1))="D" Then templx="datetime"
  1843.       If UCase(NeFilarry(1))="M" Then templx="varchar(" & NeFilarry(2) & ") NOT NULL PRIMARY KEY"
  1844.       If UCase(NeFilarry(1))="A" Then templx="Int IDENTITY (1,1) NOT NULL PRIMARY KEY"
  1845.       If UCase(NeFilarry(1))="N" Then templx="Float"
  1846.       If UCase(NeFilarry(1))="Z" Then templx="Int"
  1847.       If SqlType =1 Then
  1848.          def_kh_l="('"
  1849.          def_kh_r="')"
  1850.       End If
  1851.       If Trim(NeFilarry(3))<>"" Then templx=templx &" DEFAULT " & def_kh_l & Trim(NeFilarry(3)) & def_kh_r
  1852.       If ai<>UBound(filsarry) Then
  1853.          spfstr= spfstr & "[" & NeFilarry(0) & "] " & templx &","
  1854.       Else
  1855.          spfstr= spfstr & "[" & NeFilarry(0) & "] " & templx
  1856.       End If
  1857.   Next
  1858.   TempSqlStr="CREATE TABLE ["&Trim(Tabnamestr)&"] (" & spfstr & ")"
  1859.   set fu_Conn=server.createobject("ADODB.Connection")
  1860.   fu_Conn.open ConnStrs
  1861.   fu_Conn.Execute TempSqlStr
  1862.   fu_Conn.Close
  1863.   Set fu_Conn=Nothing
  1864.   If Err.Number = 0 Then
  1865.      CreatTable=True
  1866.   End If
  1867.   On Error GoTo 0
  1868. End Function
  1869. '**************************************************
  1870. '函數ID:0045[在資料庫中插入字段值]
  1871. '函數名:InterTbValue
  1872. '作 用:創建資料表
  1873. '參 數:ConnStrs    ---- 資料庫鏈接字串
  1874. '參 數:Tabnamestr  ---- 資料表名稱
  1875. '參 數:CvArrstr    ---- 字段表 (寫法: Fname1#Value|Fname2#Value|...) 最後一個不要寫「|」
  1876. '參 數:SqlType     ---- Sql語句類型 (0 Access 1 Mssqlserver)
  1877. ' Fname,Value 說明:字段名稱,字段值
  1878. '返回值:如果插入成功返回 True 否則 False
  1879. '示 例:InterTbValue(basicDB(3),"cs","fa#t|fb#c|fc#n#")
  1880. '**************************************************
  1881. Public Function InterTbValue(ByVal ConnStrs,ByVal Tabnamestr,ByVal CvArrstr,ByVal SqlType)
  1882.   InterTbValue=False
  1883.   On Error GoTo 0
  1884.   On Error Resume Next
  1885.   Dim def_kh_l,def_kh_r,Filarray,Valuearray,Temparraya,Temparrayb,TempSqlStr1
  1886.   def_kh_l  =""
  1887.   def_kh_r  =""
  1888.   Temparraya=Split(CvArrstr,"|")
  1889.   For fai = LBound(Temparraya) To UBound(Temparraya)
  1890.       Temparrayb=Split(Temparraya(fai),"#")
  1891.       If (fai<> UBound(Temparraya)) Then
  1892.          Filarray  =Filarray & "[" & Temparrayb(0) & "],"
  1893.          Valuearray=Valuearray & "'" & Temparrayb(1) & "',"
  1894.       Else
  1895.          Filarray  =Filarray & "[" & Temparrayb(0) & "]"
  1896.          Valuearray=Valuearray & "'" & Temparrayb(1) & "'"
  1897.       End If
  1898.   Next
  1899.   TempSqlStr1="INSERT INTO [" & Tabnamestr & "] (" & Filarray & ") VALUES (" & Valuearray & ")"
  1900.   set fu1_Conn=server.createobject("ADODB.Connection")
  1901.   fu1_Conn.open ConnStrs
  1902.   fu1_Conn.Execute TempSqlStr1
  1903.   fu1_Conn.Close
  1904.   Set fu1_Conn=Nothing
  1905.   If Err.Number = 0 Then
  1906.      InterTbValue=True
  1907.   End If
  1908.   On Error GoTo 0
  1909. End Function
  1910. '**************************************************
  1911. '函數ID:0046[Cookie防亂碼寫入時用]
  1912. '函數名:CodeCookie
  1913. '作 用:Cookie防亂碼寫入時用
  1914. '參 數:str  ---- 字符串
  1915. '返回值:整理後的字符串
  1916. '示 例:
  1917. '**************************************************
  1918. Public Function CodeCookie(str)
  1919.   If isNumeric(str) Then str=Cstr(str)
  1920.   Dim newstr
  1921.   newstr=""
  1922.   For i=1 To Len(str)
  1923.       newstr=newstr & ascw(mid(str,i,1))
  1924.       If i<> Len(str) Then newstr= newstr & "a"
  1925.   Next
  1926.   CodeCookie=newstr
  1927. End Function
  1928. '**************************************************
  1929. '函數ID:0047[Cookie防亂碼讀出時用]
  1930. '函數名:DecodeCookie
  1931. '作 用:Cookie防亂碼讀出時用
  1932. '參 數:str  ---- 字符串
  1933. '返回值:整理後的字符串
  1934. '示 例:
  1935. '**************************************************
  1936. Public Function DecodeCookie(str)
  1937.   DecodeCookie=""
  1938.   Dim newstr
  1939.   newstr=Split(str,"a")
  1940.   For i = LBound(newstr) To UBound(newstr)
  1941.       DecodeCookie= DecodeCookie & chrw(newstr(i))
  1942.   Next
  1943. End Function
  1944. '**************************************************
  1945. '函數ID:0048[檢測用戶名和密碼是否正確]
  1946. '函數名:DecodeCookie
  1947. '作 用:檢測用戶名和密碼是否正確
  1948. '參 數:ConnStrs    ---- 資料庫鏈接字串
  1949. '參 數:Tabnamestr  ---- 資料表名稱
  1950. '參 數:Tumc        ---- 用戶名稱字段名稱
  1951. '參 數:Cumc        ---- 用戶名稱
  1952. '參 數:TCumm       ---- 用戶密碼字段名稱
  1953. '參 數:Cumm        ---- 用戶密碼
  1954. '參 數:TUid        ---- 用戶ID(標識)字段名稱
  1955. '返回值:檢測成功返回 用戶ID 否則 空字符串
  1956. '示 例:
  1957. '**************************************************
  1958. Public Function CKUSMCMM(ByVal ConnStrs,ByVal Tabnamestr,ByVal Tumc,ByVal Cumc,ByVal Tumm,ByVal Cumm,ByVal TUid)
  1959.   CKUSMCMM=""
  1960.   On Error GoTo 0
  1961.   On Error Resume Next
  1962.   Set sfu_Conn=server.createobject("ADODB.Connection")
  1963.   Set sfu_Rs  =server.createobject("ADODB.Recordset")
  1964.   sfu_Conn.open ConnStrs
  1965.   sfu_sql_str="select " & TUid & "," & Tumc & "," & Tumm & " from " & Tabnamestr
  1966.   sfu_Rs.open sfu_sql_str,sfu_Conn,1,1
  1967.   If sfu_Rs.RecordCount >0 Then
  1968.      Do While Not sfu_Rs.Eof
  1969.         If (sfu_Rs(Tumc)=Cumc) AND (exmw(sfu_Rs(Tumm))=Cumm) Then
  1970.            CKUSMCMM=sfu_Rs(TUid)
  1971.            Exit Do
  1972.         End If
  1973.         sfu_Rs.MoveNext
  1974.      Loop
  1975.   End If
  1976.   sfu_Rs.Close
  1977.   sfu_Conn.Close
  1978.   Set sfu_Rs = Nothing
  1979.   Set sfu_Conn=Nothing
  1980.   On Error GoTo 0
  1981. End Function
  1982. '**************************************************
  1983. '函數ID:0049[生成時間的整數]
  1984. '函數名:GetMyTimeNumber()
  1985. '作 用:生成時間的整數
  1986. '參 數:lx  ---- 時間整數的類型
  1987. ' lx=0 到分鐘 lx=1 到小時 lx=2 到天 lx=3 到月
  1988. '返回值:生成時間的整數值(最小到分鐘)
  1989. '示 例:
  1990. '**************************************************
  1991. Public Function GetMyTimeNumber(lx)
  1992.   If lx=0 Then GetMyTimeNumber=Year(Date)*12*30*24*60+Month(Date)*30*24*60+Day(Date)*24*60+Hour(Time)*60+Minute(Time)
  1993.   If lx=1 Then GetMyTimeNumber=Year(Date)*12*30*24+Month(Date)*30*24+Day(Date)*24+Hour(Time)
  1994.   If lx=2 Then GetMyTimeNumber=Year(Date)*12*30+Month(Date)*30+Day(Date)
  1995.   If lx=3 Then GetMyTimeNumber=Year(Date)*12+Month(Date)
  1996. End Function
  1997. '**************************************************
  1998. '函數ID:0050[獲得欄目的所有子欄目字符串並用","隔開]
  1999. '函數名:GTLMfunLM
  2000. '作 用:獲得欄目的所有子欄目字符串並用","隔開
  2001. '參 數:LMid          ---- 欄目代碼
  2002. '參 數:ConnStrArray  ---- 欄目資料鏈接串
  2003. '返回值:子欄目字符串並用","隔開
  2004. '示 例:hh="資料表鏈接字串|父欄目字段名|欄目字段名|表名"
  2005. '示 例:GTLMfunLM(22,basicDB(3) & "|FTitId|TitId|TITS")
  2006. '**************************************************
  2007. Public Function GTLMfunLM(ByVal LMid,ByVal ConnStrArray)
  2008.   Dim LMstrxx,zdbz,Nlm
  2009.   zdbz=False
  2010.   LMstrxx=""
  2011.   aTempstr=GTLMfunLM_whil(LMid,ConnStrArray)
  2012.   LMstrxx=LMstrxx & aTempstr
  2013.   If InStrRev(aTempstr,",") > 0 Then
  2014.      Do While Not zdbz
  2015.         bTempstr=GTLMfunLM_Fj(aTempstr,ConnStrArray)
  2016.         LMstrxx=LMstrxx & bTempstr
  2017.         If bTempstr="" Then zdbz=True
  2018.         aTempstr=bTempstr
  2019.      Loop
  2020.   Else
  2021.      LMstrxx=aTempstr
  2022.   End If
  2023.   LMstrxx=Trim(LMstrxx)
  2024.   If LMstrxx<>"" Then If Mid(LMstrxx,Len(LMstrxx),1) = ","  Then LMstrxx=Mid(LMstrxx,1,Len(LMstrxx)-1)
  2025.   GTLMfunLM=LMstrxx
  2026. End Function
  2027. Public Function GTLMfunLM_whil(ByVal LMidstr,ByVal ConnStrArray)
  2028.   ppTemp=Split(ConnStrArray,"|")
  2029.   GTLMfunLM_whil=""
  2030.   Set telm_Conn=server.createobject("ADODB.Connection")
  2031.   Set telm_Rs  =server.createobject("ADODB.Recordset")
  2032.   telm_Conn.open ppTemp(0)
  2033.   telm_sql_str="SELECT " & ppTemp(1) & "," & ppTemp(2) & " FROM " & ppTemp(3) & " WHERE (" & ppTemp(1) & "='" & LMidstr & "')"
  2034.   telm_Rs.open telm_sql_str,telm_Conn,1,1
  2035.   If telm_Rs.RecordCount >0 Then
  2036.      Do While Not telm_Rs.Eof
  2037.         GTLMfunLM_whil=GTLMfunLM_whil & Trim(telm_Rs(ppTemp(2))) & ","
  2038.         telm_Rs.MoveNext
  2039.      Loop
  2040.   End If
  2041.   telm_Rs.Close
  2042.   telm_Conn.Close
  2043.   Set telm_Rs = Nothing
  2044.   Set telm_Conn=Nothing
  2045. End Function
  2046. Public Function GTLMfunLM_Fj(ByVal str,ByVal ConnStrArray)
  2047.   Dim templjid
  2048.   templjid=""
  2049.   If Trim(str)<>"" Then
  2050.      fjTemp=Split(str,",")
  2051.      For i = LBound(fjTemp) To UBound(fjTemp)
  2052.          If Trim(fjTemp(i))<>"" Then
  2053.             templjid=templjid & GTLMfunLM_whil(fjTemp(i),ConnStrArray)
  2054.          End If
  2055.      Next
  2056.   End If
  2057.   GTLMfunLM_Fj=templjid
  2058. End Function
  2059. %>
複製代碼

[ 本帖最後由 f66666602 於 2007-8-14 05:00 編輯 ]
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2026-5-3 04:15 , Processed in 0.044302 second(s), 16 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表