ASP實例:詞語搭配游戲的制作_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP 3.0高級編程(四十一)
      9.2.3 存儲過程 存儲過程的使用是Command對象得到應用的一個領域。存儲過程(有時也稱存儲查詢)是存儲在數據庫中預先定義的SQL查詢語句。 為什么應該創建和使用存儲過程而不是在代碼中直接使用

      這是個關于詞語搭配的游戲,是用ASP、VBScript和JavaScript寫的。

      在本機Win98 OEM2、PWS、IE5下測試下沒發現大問題。

      使用方法:

      方法一:比方說你的3W服務的目錄是C:\Inetpub\wwwroot,在下面建一個目錄,如wordAsb;將游戲文件(wordAsb.asp)拷入目錄中;在IE的地址欄中鍵入http:// 你的機器名 /wordAsb/wordAsb.asp或http://127.0.0.1/wordAsb/wordAsb.asp,回車,就可以開始游戲了

      方法二:將游戲文件(wordAsb.asp)隨便拷入一新建的目錄。鼠標右鍵點擊該目錄,菜單中選“屬性”,點“Web Sharing”屬性頁,點選“Share this folder”項,點“OK”就可以了。在IE的地址欄中鍵入http:// 你的機器名 /新建目錄的名稱/wordAsb.asp或http://127.0.0.1/ 新建目錄的名稱 /wordAsb.asp,回車,就可以開始游戲了。

      注:您的機子OS應該是NT或Win2000 Server或其他OS但是裝有PWS

      游戲方法:

      單擊游戲中的“游戲說明”就知道了;如果有時頁面一片空白,請按F5刷新一遍(這也是目前最大的bug吧)。

      代碼如下:

      以下為引用的內容:
      <%@ Language = VBScript%>
      <%
      Option Explicit
      'Last Updated By Recon On 03/16/2001

      Dim m_iPartCnt
      Dim m_strPrompt
      Dim m_astrSenPart(), m_astrFileName()
      Dim m_astrWords(), m_aiOpStatus()

      '------------------------------------------
      '常變量說明
      'm_iPartCnt :詞匯分類的數目。整型
      'm_strPrompt :對文件操作完畢后的提示。字符串型
      'm_astrSenPart :詞匯分類的名稱。字符型數組
      'm_astrFileName :記錄各類詞匯文件的文件名。字符型數組
      'm_astrWords :紀錄各類詞匯。二維字符型數組
      'm_aiOpStatus :紀錄對各個文件操作后的狀態。整型數組
      '------------------------------------------

      'ShowMethod
      m_iPartCnt = 4
      m_strPrompt = ""
      ReDim m_astrSenPart(m_iPartCnt)
      ReDim m_astrFileName(m_iPartCnt)
      ReDim m_astrWords(m_iPartCnt)
      ReDim m_aiOpStatus(m_iPartCnt)

      '定義各種詞匯分類的名稱
      m_astrSenPart(0) = "主語"
      m_astrSenPart(1) = "程度狀語"
      m_astrSenPart(2) = "地點狀語"
      m_astrSenPart(3) = "謂語"

      '定義記載各類詞匯文件的名稱
      m_astrFileName(0) = "Who.txt"
      m_astrFileName(1) = "How.txt"
      m_astrFileName(2) = "Where.txt"
      m_astrFileName(3) = "What.txt"

      If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
      '如果頁面的請求方式是 POST

      '************************
      '獲得客戶端的信息
      '************************
      Dim m_iSenPart
      Dim m_strOpWay
      Dim m_bRptedData

      '------------------------------------------
      '常變量說明
      'm_iSenPart :表示詞匯分類的數字。整型
      ' 詞匯的分類來自數組m_astrSenPart
      ' 可能的值有:
      ' 0:主語
      ' 1:程度狀語
      ' 2:地點狀語
      ' 3:謂語

      'm_strOpWay :文件操作方式。字符串型
      ' 可能的值有:
      ' 1、SAVE :將某類詞匯存入文件
      ' 2、SAVEALL :將所有類別的詞匯存入文件
      ' 3、LOAD :從文件中載入某類詞匯
      ' 4、LOADALL :從文件中載入所有類別的詞匯

      'm_bRptedData :表示本次提交的表單數據和上次是否相同。布爾型
      ' 可能的值有:
      ' 1、False :表單數據不重復
      ' 2、True :表單數據重復(即重復提交表單)
      '------------------------------------------

      'ShowForm
      '獲得用戶請求的操作方式
      m_strOpWay = Request.Form("txtOpWay")
      'Show("m_strOpWay")

      '獲得各個類別的單詞
      For m_iCount = 0 To (m_iPartCnt - 1)
      If Request.Form("txtWords" & m_iCount) <> "" Then
      m_astrWords(m_iCount) = Split(Request.Form("txtWords" & m_iCount), ",")
      End If
      'Response.Write UBound(m_astrWords(m_iCount)) & "<br>"
      Next

      '檢測是否重復提交表單
      'If Session("FormInf") = Request.Form Then
      ' '表單是重復提交
      ' m_bRptedData = True
      'Else
      ' '表單是非重復提交
      ' Session("FormInf") = Request.Form
      ' m_bRptedData = False
      'End If
      'Show("m_bRptedData")

      '************************
      '對單詞文件進行操作
      '************************
      'If m_bRptedData = False Then

      Dim m_iCount, m_iErrCnt
      Dim m_strFilePath

      '------------------------------------------
      '常變量說明
      'm_iCount :計數器。整型
      'm_iErrCnt :發生操作失敗的次數。整型
      'm_strFilePath :記錄各類詞匯文件的路徑。字符串型
      '------------------------------------------

      '獲得放置詞匯文件的路徑
      m_strFilePath = Request.ServerVariables("PATH_TRANSLATED")
      m_strFilePath = Left(m_strFilePath, InStrRev(m_strFilePath, "\"))
      'm_strFilePath = m_strFilePath & "Words\"
      'Show("m_strFilePath")

      '開始操作文件
      'Response.Write "Begin to Operate Word Files<br>"
      Select Case m_strOpWay
      Case "SAVE"
      '保存單詞到文件中
      m_iSenPart = CInt(Request.Form("txtSenPart"))
      m_aiOpStatus(m_iSenPart) = SaveFile(m_iSenPart)

      '根據操作狀態,得到提示信息
      Select Case m_aiOpStatus(m_iSenPart)
      Case 0
      m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分單詞已成功地被保存到文件中"

      Case 1
      m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分文件保存失敗"
      End Select

      Case "SAVEALL"
      '保存所有類別的單詞到文件中
      m_iErrCnt = 0
      For m_iCount = 0 To (m_iPartCnt - 1)
      m_aiOpStatus(m_iCount) = SaveFile(m_iCount)
      If m_aiOpStatus(m_iCount) = 1 Then
      m_iErrCnt = m_iErrCnt 1
      End If
      Next

      '根據操作狀態,得到提示信息
      Select Case m_iErrCnt
      Case 0
      m_strPrompt = "所有類別的單詞都已成功地被保存到文件中"

      Case m_iPartCnt
      m_strPrompt = "所有類別的單詞文件都保存失敗"

      Case Else
      m_strPrompt = "其中,"
      For m_iCount = 0 To (m_iPartCnt - 1)
      If m_aiOpStatus(m_iCount) = 1 Then
      m_strPrompt = m_strPrompt & "[" & m_astrSenPart(m_iCount) & "]、"
      End If
      Next
      m_strPrompt = Left(m_strPrompt, Len(m_strPrompt) - 1)
      m_strPrompt = m_strPrompt & "部分文件保存失敗"
      End Select

      Case "LOAD"
      '從文件中載入單詞
      m_iSenPart = CInt(Request.Form("txtSenPart"))
      m_aiOpStatus(m_iSenPart) = LoadFile(m_iSenPart)

      '根據操作狀態,得到提示信息
      Select Case m_aiOpStatus(m_iSenPart)
      Case 0
      m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分單詞已成功地被載入"

      Case 1
      m_strPrompt = "[" & m_astrSenPart(m_iSenPart) & "]部分文件不存在,載入失敗"
      End Select

      Case "LOADALL"
      '從各個文件中載入單詞
      m_iErrCnt = 0
      For m_iCount = 0 To (m_iPartCnt - 1)
      m_aiOpStatus(m_iCount) = LoadFile(m_iCount)
      If m_aiOpStatus(m_iCount) = 1 Then
      m_iErrCnt = m_iErrCnt 1
      End If
      Next

      '根據操作狀態,得到提示信息
      Select Case m_iErrCnt
      Case 0
      m_strPrompt = "所有類別的單詞都已成功地被載入"

      Case m_iPartCnt
      m_strPrompt = "所有類別的單詞文件都不存在,載入完全失敗"

      Case Else
      m_strPrompt = "其中,"
      For m_iCount = 0 To (m_iPartCnt - 1)
      If m_aiOpStatus(m_iCount) = 1 Then
      m_strPrompt = m_strPrompt & "[" & m_astrSenPart(m_iCount) & "]、"
      End If
      Next
      m_strPrompt = Left(m_strPrompt, Len(m_strPrompt) - 1)
      m_strPrompt = m_strPrompt & "部分文件不存在,載入部分失敗"
      End Select
      End Select

      'End If
      End If
      'Response.Write "End to Operate Word Files<br>"
      'Response.Write "Begin to Write Client Page<br>"
      %>

      <html>
      <head>
      <title> 詞語搭配游戲 </title>
      <meta name="Generator" content="EditPlus">
      <meta name="Author" content="">
      <meta name="Keywords" content="">
      <meta name="Description" content="">

      <!--風格表-->
      <style>
      <!--
      /*英文字體1*/
      .fontEng1
      {
      font-family: TIMES NEW ROMAN;
      font-style: ;
      }

      /*英文字體2*/
      .fontEng2
      {
      font-family: TIMES NEW ROMAN;
      font-style: ITALIC;
      }

      /*強調字體*/
      .fontEmp
      {
      color: RED;
      }

      /*鏈接*/
      .link
      {
      font-family: TIMES NEW ROMAN;
      font-style: ITALIC;
      text-decoration: NONE;
      }

      /*被顯示的單詞列表*/
      .listShown
      {
      position: ABSOLUTE;
      width: 140px;
      height: 200px;
      display: INLINE;
      border: LIGHTCORAL 1px SOLID;
      background-color: GAINSBORO;
      }

      /*被隱藏的單詞列表*/
      .listHidden
      {
      position: ABSOLUTE;
      width: 140px;
      height: 200px;
      display: NONE;
      border: LIGHTCORAL 1px SOLID;
      background-color: GAINSBORO;
      }

      /*被固定的單詞列表*/
      .listFixed
      {
      position: ABSOLUTE;
      width: 140px;
      height: 200px;
      display: INLINE;
      border: RED 1px SOLID;
      background-color: GAINSBORO;
      }

      /*被顯示的幫助列表*/
      .helpShown
      {
      position: ABSOLUTE;
      width: ;
      height: ;
      display: block;
      border: LIGHTCORAL 1px SOLID;
      background-color: GAINSBORO;
      }

      /*被隱藏的幫助列表*/
      .helpHidden
      {
      position: ABSOLUTE;
      width: ;
      height: ;
      display: NONE;
      border: LIGHTCORAL 1px SOLID;
      background-color: GAINSBORO;
      }

      /*被固定的幫助列表*/
      .helpFixed
      {
      position: ABSOLUTE;
      width: ;
      height: ;
      display: block;
      border: RED 1px SOLID;
      background-color: GAINSBORO;
      }

      /*被強調顯示的標簽*/
      .lblMOver
      {
      text-decoration: NONE;
      color: LIGHTCORAL;
      background-color: ;
      }

      /*正常顯示的標簽*/
      .lblMOut
      {
      text-decoration: NONE;
      color: ;
      background-color: ;
      }

      /*被點擊過的標簽*/
      .lblClicked
      {
      text-decoration: UNDERLINE;
      color: RED;
      background-color: ;
      }

      /*高亮顯示的按鈕*/
      .btnLighted
      {
      width: 105px;
      color: BLUE;
      background-color: ;
      }

      /*正常顯示的按鈕*/
      .btnDelighted
      {
      width: 105px;
      color: ;
      background-color: ;
      }

      /*高亮顯示的單詞列表項*/
      .optLighted
      {
      text-decoration: UNDERLINE;
      color: BLUE;
      background-color: ;
      cursor: HAND;
      }

      /*正常顯示的單詞列表項*/
      .optDelighted
      {
      text-decoration: NONE;
      color: ;
      background-color: ;
      cursor: ;
      }
      -->
      </style>

      <!--客戶端腳本-->
      <script language="JavaScript">
      <!--
      //客戶端公用及測試函數
      //************************
      //函數名 :lTrim
      //功能 :去掉字串左邊的空格
      //輸入 :1、strTemp :要規整的字串。字符串型
      //輸出 :規整后的字串。字符串型
      //************************
      function lTrim(strTemp)
      {
      var iCount, iLength;
      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iLength :字串的長度。整型
      //------------------------------------------

      iLength = strTemp.length;
      for (iCount = 0; iCount < iLength; iCount )
      if (strTemp.charAt(iCount) != " ")
      return strTemp.substring(iCount, iLength);

      return "";
      }

      //************************
      //函數名 :rTrim
      //功能 :去掉字串右邊的空格
      //輸入 :1、strTemp :要規整的字串。字符串型
      //輸出 :規整后的字串。字符串型
      //************************
      function rTrim(strTemp)
      {
      var iCount, iLength;
      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iLength :字串的長度。整型
      //------------------------------------------

      iLength = strTemp.length;
      for(iCount = iLength - 1; iCount >= 0; iCount --)
      if (strTemp.charAt(iCount) != " ")
      return strTemp.substring(0, iCount 1);

      return "";
      }

      //************************
      //函數名 :trim
      //功能 :去掉字串兩邊的空格
      //輸入 :1、strTemp :要規整的字串。字符串型
      //輸出 :規整后的字串。字符串型
      //************************
      function trim(strTemp)
      {
      return rTrim(lTrim(strTemp));
      }

      //將2位數字轉換成2位數字字串
      //************************
      //函數名 :get2bNumStr
      //功能 :轉換2位的數字成2位的數字字串
      //輸入 :1、iNumber :要轉換的數字。整型
      //輸出 :轉換后得到的數字字串。整型
      //************************
      function get2bNumStr(iNumber)
      {
      var str2bNum;
      //------------------------------------------
      //常變量說明
      //str2bNum :數字字串。字符串型
      //------------------------------------------

      if (parseInt(iNumber) < 10)
      str2bNum = "0" iNumber;
      else
      str2bNum = "" iNumber;

      return str2bNum;
      }

      //************************
      //函數名 :assignFunc
      //功能 :指定元素的事件處理函數
      //輸入 :1、ele :要指定事件處理函數的元素。對象型
      // 2、func :事件處理函數。函數型
      // 3、event :事件類型。字符串型
      //輸出 :無
      //************************
      function assignFunc(ele, func, event)
      {
      var iCount, iEleCount;
      var strEvent;

      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iEleCount :同名元素集合中元素的個數。整型
      //strEvent :事件類型。字符串型
      //------------------------------------------

      if (event == null)
      strEvent = "onclick";
      else
      strEvent = event;

      iEleCount = ele.length;
      if (iEleCount == undefined)
      eval("ele." strEvent " = " func);
      else
      for (iCount = 0; iCount < iEleCount; iCount )
      eval("ele[iCount]." strEvent " = " func);
      }

      //************************
      //函數名 :getEleIndex
      //功能 :得到發生事件的元素在同名集合中的索引
      //輸入 :1、eleSrc :發生事件的元素。對象型
      //輸出 :發生事件的元素在同名集合中的索引
      //************************
      function getEleIndex(eleSrc)
      {
      var colSrc;
      var iCount, iEleCount;

      //------------------------------------------
      //常變量說明
      //colSrc :同名元素集合。對象型數組
      //iCount :計數器。整型
      //iEleCount :同名元素集合中元素的個數。整型
      //------------------------------------------

      colSrc = eval(eleSrc.id);
      iEleCount = colSrc.length;
      for (iCount = 0; iCount < iEleCount; iCount )
      {
      if (colSrc[iCount] == eleSrc)
      return iCount;
      }

      return -1;
      }

      //顯示常變量的值(調試用)
      //!準備刪去
      function show(strDef1, strDef2, strDef3, strDef4)
      {
      var iCount, iDefCnt;
      var strShow, strTemp;

      iDefCnt = 4;
      strShow = "[常變量值]";
      for (iCount = 1; iCount <= iDefCnt; iCount )
      {
      strTemp = eval("strDef" iCount);
      if (strTemp != undefined && strTemp != null)
      strShow = "\n" strTemp ": " eval(strTemp);
      }

      alert(strShow);
      }

      //************************
      //函數名 :showArray
      //功能 :顯示一維數組的元素(調試用)
      //輸入 :1、array :要顯示的一維數組。數組
      //輸出 :無
      //************************
      function showArray(array)
      {
      var iCount, iEleCount;
      var strShow;

      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iEleCount :數組元素的個數。整型
      //strShow :數組元素值構成的字串。字符串型
      //------------------------------------------

      iEleCount = array.length;
      strShow = "Array Length: " iEleCount;
      strShow = "\n---------------------------------\n";

      for (iCount = 0; iCount < iEleCount; iCount )
      {
      if (typeof(array[iCount]) == "object")
      strShow = array[iCount].id " ";
      else
      strShow = array[iCount] " ";
      }

      alert(strShow);
      }

      //************************
      //函數名 :show2DArray
      //功能 :顯示二維數組的元素(調試用)
      //輸入 :1、array :要顯示的二維數組。數組
      //輸出 :無
      //************************
      function show2DArray(array)
      {
      var iX, iY, iLen1, iLen2;
      var strShow;

      //------------------------------------------
      //常變量說明
      //iX :計數器。整型
      //iY :計數器。整型
      //iLen1 :數組一維的數目。整型
      //iLen2 :數組二維的數目。整型
      //strShow :數組元素值構成的字串。字符串型
      //------------------------------------------

      iLen1 = array.length;
      strShow = "Array 1D Length: " iLen1;
      strShow = "\n---------------------------------";

      for (iX = 0; iX < iLen1; iX )
      {
      strShow = "\n";
      iLen2 = array[iX].length;
      for (iY = 0; iY < iLen2; iY )
      strShow = array[iX][iY] " ";
      }

      alert(strShow);
      }
      //-->
      </script>

      <script language="JavaScript">
      <!--
      //--------------------函數列表--------------------------
      //window_onload
      //
      //getWord
      //reset
      //save
      //load
      //
      //showList
      //hideList
      //fixList
      //valueList
      //
      //showHelp
      //hideHelp
      //fixHelp
      //
      //resetAll
      //saveAll
      //loadAll
      //assemble
      //
      //lightBtn
      //delightBtn
      //lightOpt
      //delightOpt
      //
      //makeOpt
      //removeOpt
      //-----------------------------------------------------------

      var m_iPartCnt;
      var m_astrSenPart, m_astrWords;
      var m_strPrompt;
      var m_iListFixed, m_iHelpFixed;

      //------------------------------------------
      //常變量說明
      //m_iPartCnt :詞匯分類的數目。整型
      //m_astrSenPart :詞匯分類的名稱。字符型數組
      //m_astrWords :紀錄各類詞匯。二維字符型數組
      //m_strPrompt :文件操作完畢后的提示信息。字符串型
      //m_iListFixed :代表被固定單詞列表的數字。整型
      // -1表示沒有單詞列表被固定
      //m_iHelpFixed :表示幫助列表固定狀態的數字。整型
      // -1表示幫助列表沒有被固定
      //------------------------------------------

      window.onload = window_onload;
      //-----------------------------------------------------------
      //初始化頁面
      function window_onload()
      {
      var iCount, iEleCnt;
      var colButton;
      var strHelp;

      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iEleCnt :集合中元素的個數。整型
      //colButton :BUTTON元素的集合。對象型數組
      //strHelp :幫助文件內容。字符串型
      //------------------------------------------

      m_iPartCnt = <%= m_iPartCnt%>;
      m_strPrompt = "<%= m_strPrompt%>";
      m_iListFixed = -1;
      m_iHelpFixed = -1;
      m_astrSenPart = new Array();
      m_astrWords = new Array();
      //alert("m_iPartCnt: " m_iPartCnt "\nm_strPrompt: " m_strPrompt);

      //得到詞匯分類的名稱和已載入的各類詞匯
      <%For m_iCount = 0 To (m_iPartCnt - 1)%>
      //得到已載入的各類詞匯
      <%If IsEmpty(m_astrWords(m_iCount)) = True Then%>
      m_astrWords[<%= m_iCount%>] = new Array();
      <%Else%>
      m_astrWords[<%= m_iCount%>] = "<%= Join(m_astrWords(m_iCount), ",")%>".split(",");
      <%End If%>

      //得到詞匯分類的名稱
      m_astrSenPart[<%= m_iCount%>] = "<%= m_astrSenPart(m_iCount)%>";
      <%Next%>
      //show2DArray(m_astrWords);
      //showArray(m_astrSenPart);

      //將已載入的各類詞匯寫入到頁面中
      for (iCount = 0; iCount < m_iPartCnt; iCount )
      valueList(m_astrWords[iCount], iCount);

      //載入幫助文件
      //strHelp = tblHelp.outerHTML;
      //strHelp = divHelp1.innerHTML;
      //tblHelp.outerHTML = "";
      //divHelp.innerHTML = strHelp;
      //tblHelp.style.display = "";
      //divHelp.style.display = "NONE";
      //divHelp.style.left = divHelp1.style.left;
      //alert("left: " divHelp.style.left "\nleft: " divHelp1.style.left);
      //alert("pixelleft: " divHelp.style.pixelLeft "\npixelleft: " divHelp1.style.pixelLeft);
      //alert("posLeft: " divHelp.style.posLeft "\nposLeft: " divHelp1.style.posLeft);
      //alert("offsetLeft : " divHelp.offsetLeft "\noffsetLeft : " divHelp1.offsetLeft );
      //alert("clientLeft : " divHelp.clientLeft "\nclientLeft : " divHelp1.clientLeft );

      //指定頁面元素的事件處理函數
      assignFunc(txtWord, getWord, "onkeypress");
      assignFunc(btnGetWord, getWord);
      assignFunc(btnReset, reset);
      assignFunc(btnSave, save);
      assignFunc(btnLoad, load);
      assignFunc(lblWordList, showList, "onmouseover");
      assignFunc(lblWordList, hideList, "onmouseout");
      assignFunc(lblWordList, fixList);
      assignFunc(lblHelp, showHelp, "onmouseover");
      assignFunc(lblHelp, hideHelp, "onmouseout");
      assignFunc(lblHelp, fixHelp);
      assignFunc(btnResetAll, resetAll);
      assignFunc(btnSaveAll, saveAll);
      assignFunc(btnLoadAll, loadAll);
      assignFunc(btnAsb, assemble);

      colButton = document.all.tags("BUTTON");
      iEleCnt = colButton.length;
      //showArray(colButton);
      //alert("iEleCnt: " iEleCnt);
      for (iCount = 0; iCount < iEleCnt; iCount )
      {
      assignFunc(colButton[iCount], lightBtn, "onmouseover");
      assignFunc(colButton[iCount], delightBtn, "onmouseout");
      }

      //設置頁面初始狀態
      if (m_strPrompt != "")
      alert(m_strPrompt);
      txtWord[0].focus();
      }

      //-----------------------------------------------------------
      //得到用戶輸入的單詞
      function getWord()
      {
      //只有當在單詞輸入框中按回車或
      //按“保存”按鈕時才繼續做下去
      if (window.event.type != "keypress" && window.event.type != "click")
      return;
      else
      if (window.event.type == "keypress" && window.event.keyCode != 13) return;

      var eleSrc;
      var iIndex, iNxtWrdIdx;
      var strWord;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //iNxtWrdIdx :新單詞在單詞數組中的索引。整型
      //strWord :用戶輸入的單詞。字符串型
      //------------------------------------------

      eleSrc = window.event.srcElement;
      iIndex = getEleIndex(eleSrc); //獲得索引
      strWord = trim(txtWord[iIndex].value); //獲得用戶輸入的單詞

      //檢測輸入的單詞是否合法
      //若是非法的單詞則退出
      if (strWord == "")
      {
      //若輸入的單詞為空或空格字符串
      alert("單詞不能為空或空格字符串");
      txtWord[iIndex].select();
      return;
      }

      if (strWord.indexOf(",") != -1 || strWord.indexOf(" ") != -1)
      {
      //若輸入的單詞包含逗號或空格
      alert("單詞不能包含逗號或空格");
      txtWord[iIndex].select();
      return;
      }

      //將單詞保存到詞匯數組中
      iNxtWrdIdx = m_astrWords[iIndex].length;
      m_astrWords[iIndex][iNxtWrdIdx] = strWord;
      //showArray(m_astrWords[iIndex]);

      //將單詞寫入到頁面中
      valueList(m_astrWords[iIndex], iIndex);
      txtWord[iIndex].value = "";
      txtWord[iIndex].focus();
      }

      //-----------------------------------------------------------
      //將當前類別所有的單詞從內存中刪去
      function reset()
      {
      var eleSrc;
      var iIndex, iCount;
      var strPrompt;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //iCount :計數器。整型
      //strPrompt :操作提示。字符串型
      //------------------------------------------

      eleSrc = window.event.srcElement;
      iIndex = getEleIndex(eleSrc);
      strPrompt = "您確定要從內存中清除[" m_astrSenPart[iIndex] "]部分所有的單詞嗎?";
      if (window.confirm(strPrompt) == false) return;

      m_astrWords[iIndex] = new Array();
      valueList(m_astrWords[iIndex], iIndex);
      //showArray(m_astrWords[iIndex]);

      strPrompt = "單詞清除完畢";
      alert(strPrompt);
      txtWord[iIndex].select();
      }

      //-----------------------------------------------------------
      //將所選類別的當前詞匯保存進文件中
      function save()
      {
      var eleSrc;
      var iIndex, iCount;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //iCount :計數器。整型
      //------------------------------------------

      eleSrc = window.event.srcElement;
      iIndex = getEleIndex(eleSrc);

      if (m_astrWords[iIndex].length == 0)
      {
      //如果所選類別的當前單詞個數為零
      var strPrompt;
      strPrompt = "[" m_astrSenPart[iIndex] "]部分現在一個可選單詞也沒有,您確定要保存嗎?";
      strPrompt = "\n(這樣將生成一個空的新文件)";
      if (window.confirm(strPrompt) == false) return;
      }

      //保存當前內存中所有的單詞
      for (iCount = 0; iCount < m_iPartCnt; iCount )
      eval("frmWords.txtWords" iCount).value = m_astrWords[iCount].join(",");

      frmWords.txtSenPart.value = iIndex;
      frmWords.txtOpWay.value = "SAVE";
      frmWords.submit();
      }

      //-----------------------------------------------------------
      //從文件中讀取所選類別的單詞紀錄
      function load()
      {
      var eleSrc;
      var iIndex, iCount;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //iCount :計數器。整型
      //------------------------------------------

      eleSrc = window.event.srcElement;
      iIndex = getEleIndex(eleSrc);

      //保存當前內存中所有的單詞
      for (iCount = 0; iCount < m_iPartCnt; iCount )
      eval("frmWords.txtWords" iCount).value = m_astrWords[iCount].join(",")

      frmWords.txtSenPart.value = iIndex;
      frmWords.txtOpWay.value = "LOAD";
      frmWords.submit();
      }

      //-----------------------------------------------------------
      //顯示詞匯列表
      function showList(iIndex)
      {
      //如果未給定參數 iIndex
      //獲得 iIndex
      if (iIndex == undefined)
      {
      //如果已有單詞列表被固定,退出函數
      if (m_iListFixed != -1) return;

      var eleSrc;
      var iIndex;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //------------------------------------------

      eleSrc = window.event.srcElement;
      iIndex = getEleIndex(eleSrc);
      }
      //alert("iIndex: " iIndex);

      //顯示詞匯列表
      //lblWordList[iIndex].innerText = "[" lblWordList[iIndex].innerText "]";
      //lblWordList[iIndex].innerText = lblWordList[iIndex].innerText ">";
      lblWordList[iIndex].className = "lblMOver";
      divWordList[iIndex].className= "listShown";
      }

      //-----------------------------------------------------------
      //隱藏詞匯列表
      function hideList(iIndex)
      {
      //如果未給定參數 iIndex
      //獲得 iIndex
      if (iIndex == undefined)
      {
      //如果已有單詞列表被固定,退出函數
      if (m_iListFixed != -1) return;

      var eleSrc;
      var iIndex;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //------------------------------------------

      eleSrc = window.event.srcElement;
      iIndex = getEleIndex(eleSrc);
      }
      //alert("iIndex: " iIndex);

      //隱藏詞匯列表
      //lblWordList[iIndex].innerText = lblWordList[iIndex].innerText.slice(0, -1);
      lblWordList[iIndex].className = "lblMOut";
      divWordList[iIndex].className= "listHidden";
      }

      //-----------------------------------------------------------
      //固定詞匯列表
      function fixList()
      {
      var eleSrc;
      var iIndex;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //------------------------------------------

      eleSrc = window.event.srcElement;
      iIndex = getEleIndex(eleSrc);

      switch (m_iListFixed)
      {
      case -1:
      //如果還沒有單詞列表被固定
      //固定當前列表
      m_iListFixed = iIndex;
      lblWordList[iIndex].className = "lblClicked";
      divWordList[iIndex].className= "listFixed";
      break;

      case iIndex:
      //如果被固定單詞列表是當前列表
      //解固當前列表
      m_iListFixed = -1;
      lblWordList[iIndex].className = "lblMOver";
      divWordList[iIndex].className= "listShown";
      break;

      default:
      //如果被固定單詞列表不是當前列表
      //解固被固定列表
      hideList(m_iListFixed);
      m_iListFixed = -1;
      lblWordList[iIndex].className = "lblMOver";
      showList(iIndex);
      break;
      }

      //alert("m_iListFixed: " m_iListFixed "\niIndex: " iIndex);
      }

      //-----------------------------------------------------------
      //寫入某類詞匯已載入的單詞
      function valueList(aWords, iSenPart)
      {
      var iCount, iWrdCnt;
      var strListPpt;

      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iWrdCnt :某類詞匯單詞的數目。整型
      //strListPpt :單詞列表中的提示。字符串型
      //------------------------------------------

      //數據準備
      iWrdCnt = aWords.length;
      lblWordCount[iSenPart].innerText = iWrdCnt;
      strListPpt = "<div><span style='color: RED; font-style: Italic; font-size: 10.5pt;'>";
      strListPpt = "雙擊單詞將其刪除</span></div>";

      //將單詞寫入列表
      if (iWrdCnt != 0)
      {
      divWordList[iSenPart].innerHTML = strListPpt;
      for (iCount = 0; iCount < iWrdCnt; iCount )
      divWordList[iSenPart].innerHTML = makeOpt(aWords[iCount], iCount);
      }
      else
      divWordList[iSenPart].innerHTML = strListPpt;
      }

      //-----------------------------------------------------------
      //顯示幫助列表
      function showHelp()
      {
      //如果幫助列表已被固定,退出函數
      if (m_iHelpFixed == 0) return;

      //顯示幫助
      lblHelp.className = "lblMOver";
      divHelp.className = "helpShown";
      }

      //-----------------------------------------------------------
      //隱藏幫助列表
      function hideHelp()
      {
      //如果幫助列表已被固定,退出函數
      if (m_iHelpFixed == 0) return;

      //隱藏幫助
      lblHelp.className = "lblMOut";
      divHelp.className = "helpHidden";
      }

      //-----------------------------------------------------------
      //固定幫助列表
      function fixHelp()
      {
      if (m_iHelpFixed == -1)
      {
      //如果幫助列表還未被固定
      //固定它
      m_iHelpFixed = 0;
      lblHelp.className = "lblClicked";
      divHelp.className = "helpFixed";
      }
      else
      {
      //如果幫助列表已被固定
      //解固它
      m_iHelpFixed = -1;
      lblHelp.className = "lblMOver";
      divHelp.className = "helpShown";
      }
      }

      //-----------------------------------------------------------
      //重置頁面至初始狀態
      function resetAll()
      {
      var iCount;
      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //------------------------------------------

      for (iCount = 0; iCount < m_iPartCnt; iCount )
      {
      txtWord[iCount].value= "";
      m_astrWords[iCount] = new Array(); //將單詞數組清空
      valueList(m_astrWords[iCount], iCount);
      }

      txtSentence.value = "";
      txtWord[0].focus();
      }

      //-----------------------------------------------------------
      //把所有類別的單詞都存入文件
      function saveAll()
      {
      var iCount, iEmptyCnt;
      var strPrompt;

      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iEmptyCnt :單詞數目為0的類別個數。整型
      //strPrompt :操作提示。字符串型
      //------------------------------------------

      iEmptyCnt = 0;
      for (iCount = 0; iCount < m_iPartCnt; iCount )
      {
      //保存當前內存中所有的單詞
      eval("frmWords.txtWords" iCount).value = m_astrWords[iCount].join(",");
      if (m_astrWords[iCount].length == 0)
      iEmptyCnt ;
      }
      //alert("iEmptyCnt: " iEmptyCnt);

      if (iEmptyCnt > 0)
      {
      switch (iEmptyCnt)
      {
      case m_iPartCnt:
      strPrompt = "所有類別的詞匯單詞個數都為0,操作將會產生" m_iPartCnt "個空文件";
      strPrompt = "\n您確定要這樣做嗎?";
      break;

      default:
      strPrompt = "其中,";
      for (iCount = 0; iCount < m_iPartCnt; iCount )
      if (m_astrWords[iCount].length == 0)
      strPrompt = "[" m_astrSenPart[iCount] "]、";
      strPrompt = strPrompt.slice(0, -1);
      strPrompt = "部分單詞個數為0";
      strPrompt = "\n操作將會產生" iEmptyCnt "個空文件";
      strPrompt = ",您確定要這樣做嗎?";
      }

      if (window.confirm(strPrompt) == false) return;
      }

      frmWords.txtOpWay.value = "SAVEALL";
      frmWords.submit();
      }

      //-----------------------------------------------------------
      //從文件中載入所有類別的單詞
      function loadAll()
      {
      var iCount;
      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //------------------------------------------

      //保存當前內存中所有的單詞
      for (iCount = 0; iCount < m_iPartCnt; iCount )
      eval("frmWords.txtWords" iCount).value = m_astrWords[iCount].join(",")

      frmWords.txtOpWay.value = "LOADALL";
      frmWords.submit();
      }

      //-----------------------------------------------------------
      //進行詞匯搭配,得到一個句子
      function assemble()
      {
      var iCount, iWrdCnt, iRndIndex;
      var strSentence;

      //------------------------------------------
      //常變量說明
      //iCount :計數器。整型
      //iWrdCnt :某類詞匯單詞的個數。整型
      //iRndIndex :隨機產生的單詞索引。整型
      //strSentence :由各個類別詞匯中的隨機單詞組成的句子。字符串型
      //------------------------------------------

      strSentence = "";
      for (iCount = 0; iCount < m_iPartCnt; iCount )
      {
      //如果當前類別詞匯的個數為0
      //給出提示,并中止搭配
      iWrdCnt = m_astrWords[iCount].length;
      if (iWrdCnt == 0)
      {
      var strPrompt;
      //------------------------------------------
      //常變量說明
      //strPrompt :操作提示。字符串型
      //------------------------------------------

      strPrompt = "[" m_astrSenPart[iCount] "]部分一個可選單詞也沒有";
      strPrompt = "\n請至少輸入一個單詞";
      alert(strPrompt);
      txtWord[iCount].select();
      return;
      }

      //隨機抽取當前類別詞匯中的一個單詞
      //加入到句子中
      iRndIndex = Math.floor(Math.random()*iWrdCnt);
      strSentence = m_astrWords[iCount][iRndIndex];
      //alert("iWrdCnt: " iWrdCnt "\niRndIndex: " iRndIndex);
      }

      strSentence = "。";
      txtSentence.value = strSentence;
      }

      //使鼠標移到之處的按鈕
      //產生“點亮”的效果
      function lightBtn()
      {
      var eleSrc;
      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //------------------------------------------

      eleSrc = window.event.srcElement;
      while (eleSrc.tagName.toUpperCase() != "BUTTON")
      eleSrc = eleSrc.parentElement;
      eleSrc.className = "btnLighted";
      }

      //使鼠標離開的按鈕
      //還原為初始狀態
      function delightBtn()
      {
      var eleSrc;
      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //------------------------------------------

      eleSrc = window.event.srcElement;
      while (eleSrc.tagName.toUpperCase() != "BUTTON")
      eleSrc = eleSrc.parentElement;
      eleSrc.className = "btnDelighted";
      }

      //在列表中,使鼠標移到之處的單詞
      //產生“點亮”的效果
      function lightOpt(ele)
      {
      var eleSrc;
      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //------------------------------------------
      eleSrc = ele;
      eleSrc.className = "optLighted";
      }

      //在列表中,使鼠標離開的單詞
      //還原為初始狀態
      function delightOpt(ele)
      {
      var eleSrc;
      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //------------------------------------------

      eleSrc = ele;
      eleSrc.className = "optDelighted";
      }

      //得到定義過的將加入列表的單詞
      function makeOpt(strWord, iWrdIdx)
      {
      var strOptHead, strOptFoot;
      var strOptWord;

      //------------------------------------------
      //常變量說明
      //strOptHead :重定義單詞頭。字符串型
      //strOptFoot :重定義單詞尾。字符串型
      //strOptWord :重定義單詞。字符串型
      //------------------------------------------

      strOptHead = "<div class='optDelighted' onmouseover='lightOpt(this);' onmouseout='delightOpt(this);' ondblclick='removeOpt(this);' wrdIdx='" iWrdIdx "'>";
      strOptFoot = "</div>";
      strOptWord = strOptHead strWord strOptFoot;
      //alert(strOptWord);

      return strOptWord;
      }

      //刪除列表中的單詞
      function removeOpt(ele)
      {
      var eleSrc;
      var iIndex, iWrdIdx;
      var astrWords, astrHead, astrFoot;

      //------------------------------------------
      //常變量說明
      //eleSrc :發生事件的元素
      //iIndex :表示詞匯分類的數字。整型
      //iWrdIdx :單詞在單詞數組中的索引。整型
      //astrWords :某類詞匯單詞數組。字符串型數組
      //astrHead :某類詞匯單詞數組頭部分。字符串型數組
      //astrFoot :某類詞匯單詞數組尾部分。字符串型數組
      //------------------------------------------

      eleSrc = ele;
      iIndex = getEleIndex(eleSrc.parentElement);
      iWrdIdx = parseInt(eleSrc.wrdIdx);

      //將單詞從詞匯數組中刪去
      //showArray(m_astrWords[iIndex]);
      astrWords = m_astrWords[iIndex].concat();
      astrHead = astrWords.slice(0, iWrdIdx);
      astrFoot = astrWords.slice(iWrdIdx 1);
      m_astrWords[iIndex] = astrHead.concat(astrFoot);
      //showArray(astrHead);
      //showArray(astrFoot);
      //showArray(m_astrWords[iIndex]);

      //將剩余的單詞重新寫入到頁面中
      valueList(m_astrWords[iIndex], iIndex);
      txtWord[iIndex].select();
      }
      //-->
      </script>
      </head>

      <body>
      <!--標題-->
      <div align="CENTER">
      <span style="font-size: 20pt; font-weight: BOLD">詞語搭配游戲</span>
      <span class="fontEng2">v1.0</span>
      </div>

      <hr style="visibility: HIDDEN">
      <!--主表格1-->
      <table border="0" align="CENTER" width="80%">

      <colgroup></colgroup>
      <colgroup></colgroup>
      <colgroup></colgroup>
      <colgroup></colgroup>
      <colgroup></colgroup>
      <colgroup></colgroup>
      <colgroup align="CENTER"></colgroup>
      <colgroup></colgroup>

      <%For m_iCount = 0 To (m_iPartCnt - 1)%>
      <tr>
      <td><%= m_astrSenPart(m_iCount)%></td>
      <td width="20%"><input type="text" id="txtWord" style="width: 100%"></td>
      <td><button id="btnGetWord" style="width: 75px" title="將單詞保存到內存中">保存</button></td>
      <td><button id="btnReset" style="width: 75px" title="從內存中刪去當前類別所有的單詞">重置</button></td>
      <td><button id="btnSave" style="width: 75px" title="將單詞保存到文件中">存入</button></td>
      <td><button id="btnLoad" style="width: 75px" title="從文件中載入單詞">載入</button></td>
      <td width="15%"><label id="lblWordList" title="單擊固定我">單詞列表</label></td>
      <td>
      <div id="divWordList" class="listHidden"></div>
      個數:<label id="lblWordCount" class="fontEng1"><%= 0%></label>
      </td>
      </tr>
      <%Next%>

      </table>

      <hr style="visibility: HIDDEN">
      <hr style="color: BLUE">
      <!--主表格2-->
      <table border="0" align="CENTER" width="80%">
      <colgroup width="16%"></colgroup>
      <colgroup width="16%"></colgroup>
      <colgroup width="16%"></colgroup>
      <colgroup></colgroup>

      <tr>
      <td><button id="btnResetAll" accesskey="r" title="從內存中刪去所有類別的單詞" class="btnDelighted">全部重置 <u>R</u></button></td>
      <td><button id="btnSaveAll" accesskey="s" title="將所有類別的單詞保存到文件中" class="btnDelighted">全部存入 <u>S</u></button></td>
      <td><button id="btnLoadAll" accesskey="l" title="從文件中載入所有類別的單詞" class="btnDelighted">全部載入 <u>L</u></button></td>
      <td>
      <span style="font-size: 9pt; color: RED;">請單擊</span> <label id="lblHelp" title="單擊固定我">游戲說明</label>
      <!--幫助說明表格-->
      <div id="divHelp" class="helpHidden">
      <table id="tblHelp" border="0" align="CENTER" width="300px" style="font-size: 9pt;">
      <colgroup width="75px"></colgroup>
      <colgroup></colgroup>

      <tr><td colspan="2">
      <a href="#1" style="color: BLUE;">游戲步驟</a>
      <a href="#2" style="color: BLUE;">操作說明</a>
      <a href="#3" style="color: BLUE;">游戲起源</a>
      <a href="#4" style="color: BLUE;">制作原因</a>
      <a href="#5" style="color: BLUE;">游戲功效</a>
      <a name="0" style="display: NONE;">TOP</a>
      </td></tr>

      <!--游戲步驟-->
      <tr><td colspan="2"></td></tr>
      <tr><td colspan="2">
      [<a name="1" style="color: BLUE;">游戲步驟</a>]
      <a href="#0" class="link">TOP</a>
      </td></tr>
      <tr><td colspan="2">
      <span class="fontEng1"><1></span>在每個部分的<span class="fontEmp">輸入框</span>中輸入單詞, 按<span class="fontEmp">回車</span>或<span class="fontEmp">“保存”</span>按鈕存入內存中;
      或按<span class="fontEmp">“載入”</span>按鈕調出以前保存的某類別單詞紀錄;
      或按<span class="fontEmp">“全部載入”</span>按鈕調出以前保存的所有類別單詞紀錄<br>
      <span class="fontEng1"><2></span>按<span class="fontEmp">“開始搭配”</span>按鈕,系統將從各類單詞中隨機抽取一個,組成一個句子
      </td></tr>

      <!--操作說明-->
      <tr><td colspan="2"></td></tr>
      <tr><td colspan="2">
      [<a name="2" style="color: BLUE;">操作說明</a>]
      <a href="#0" class="link">TOP</a>
      </td></tr>
      <tr>
      <td>保存</td>
      <td>得到用戶輸入的單詞</td>
      </tr>

      <tr>
      <td>重置</td>
      <td>將當前類別所有的單詞從內存中刪去</td>
      </tr>

      <tr>
      <td>存入</td>
      <td>將所選類別的當前詞匯保存進文件中</td>
      </tr>

      <tr>
      <td>載入</td>
      <td>從文件中讀取所選類別的單詞紀錄</td>
      </tr>

      <tr>
      <td>全部重置</td>
      <td>重置頁面至初始狀態</td>
      </tr>

      <tr>
      <td>全部保存</td>
      <td>把所有類別的單詞都存入文件</td>
      </tr>

      <tr>
      <td>全部載入</td>
      <td>從文件中載入所有類別的單詞</td>
      </tr>

      <tr>
      <td>開始搭配</td>
      <td>進行詞匯搭配,得到一個句子</td>
      </tr>

      <tr><td></td></tr>
      <tr><td colspan="2">
      <span class="fontEng1"><1></span>
      <span class="fontEmp">將鼠標移至“單詞列表”處</span>,會彈出該類詞匯的單詞列表;
      <span class="fontEmp">將鼠標移開</span>,列表會自動隱藏;
      <span class="fontEmp">點擊“單詞列表”</span>,會固定單詞列表;
      <span class="fontEmp">再次點擊</span>,會取消固定<br>

      <span class="fontEng1"><2></span>
      在<span class="fontEmp">固定住一個單詞列表</span>后,
      <span class="fontEmp">雙擊</span>該列表中的某個單詞,可以將該單詞從內存中刪去<br>

      <span class="fontEng1"><3></span>
      輸完一個單詞后,<span class="fontEmp">直接按回車</span>就可以保存了,這樣比按“保存”保存單詞更方便
      </td></tr>

      <!--游戲起源-->
      <tr><td colspan="2"></td></tr>
      <tr><td colspan="2">
      [<a name="3" style="color: BLUE;">游戲起源</a>]
      <a href="#0" class="link">TOP</a>
      </td></tr>
      <tr><td colspan="2">
      這個游戲想法來自于小時候玩的紙團游戲。那時和姐姐在家里閑得無聊,就玩這個,哈哈。
      玩法很簡單,做一些紙片,分成四堆,分別寫上<span class="fontEmp">親朋好友的名字</span>、<span class="fontEmp">形容程度的詞語</span>、<span class="fontEmp">關于地點的詞語</span>和<span class="fontEmp">所做的事情</span>。
      然后,將紙片捏成紙團,<span class="fontEng1">OK, Let's Start!</span> 現在從每堆中抽出一個紙團,就有四個詞語,將它們組成一句話,因為是隨便抽的,有時能組成很搞笑的句子。
      如:陳楠興奮地在大街上跳夏威夷草裙舞;萬民悠閑地在公園里洗澡。^_
      </td></tr>

      <!--制作原因-->
      <tr><td colspan="2"></td></tr>
      <tr><td colspan="2">
      [<a name="4" style="color: BLUE;">制作原因</a>]
      <a href="#0" class="link">TOP</a>
      </td></tr>
      <tr><td colspan="2">
      主要是無聊,想做個游戲娛樂一下自己,當然也希望大家能從中得到笑聲。
      其次也想鍛煉一下自己的技術,以前用<span class="fontEng1">VB</span>做過一個,不是很好,這次用的是<span class="fontEng1">ASP</span>,不知有沒有進步,呵呵
      這個版本我大概地測試了一下,沒發現大的<span class="fontEng1">bug</span>。如果您在游戲中發現了問題或有什么建議,請一定告訴我,在此先謝謝了!
      我的信箱是<a href="mailto: iamchn@21cn.com" class="link">iamchn@21cn.com</a>。不好你就說嗎!不可能你說好我又說不好,你不說好我又說好的,^_
      </td></tr>

      <!--游戲功效-->
      <tr><td colspan="2"></td></tr>
      <tr><td colspan="2">
      [<a name="5" style="color: BLUE;">游戲功效</a>]
      <a href="#0" class="link">TOP</a>
      </td></tr>
      <tr><td colspan="2">
      因為是搞笑游戲,所以能使你心情愉快、青春煥發,間接增加找對象的成功率;
      因為不用做紙團了,減少了浪費和污染,從而美化了世界環境;
      相信還有很多功效,請大家幫我找。哈哈。
      </td></tr>
      </table>
      </div>

      </td>
      </tr>

      <tr>
      <td><button id="btnAsb" accesskey="a" title="從每個類別詞匯中隨機抽取一個單詞,組成一個句子"class="btnDelighted">開始搭配 <u>A</u></button></td>
      <td colspan="3"><input type="text" id="txtSentence" style="width: 100%"></td>
      </tr>
      </table>
      <hr style="color: BLUE">

      <!--提交表單-->
      <form id="frmWords" method="POST" action="" style="display: NONE;">
      <%For m_iCount = 0 To (m_iPartCnt - 1)%>
      <input type="text" name="txtWords<%= m_iCount%>">
      <%Next%>
      <input type="text" name="txtSenPart">
      <input type="text" name="txtOpWay">
      </form>

      <!--版權-->
      <div align="CENTER">
      <div>
      © <span class="fontEng2">2001 China Sentin Sci. & Tech. Co., Ltd.</span>
      <span class="fontEng2">All Rights Reserved.</span>
      </div>
      <div>
      <span class="fontEng2">Authored by</span> <a href="mailto: iamchn@21cn.com" class="link">Recon</a></span>
      <a href="http://recon.top263.net/" class="link">http://recon.top263.net/</a>
      </div>
      </div>
      </body>
      </html>

      <%
      '以下是服務器端腳本
      '用到的函數和過程

      '************************
      '函數名 :SaveFile
      '功能 :將某類詞匯保存到文件中
      '輸入 :1、iSenPart :表示詞匯分類的數字。整型
      ' 可能的值有:
      ' 0:主語
      ' 1:程度狀語
      ' 2:地點狀語
      ' 3:謂語
      '輸出 :對文件操作后的狀態值。整型
      ' 可能的值有:
      ' 0:操作成功
      ' 1:操作失敗
      '************************
      Function SaveFile(iSenPart)
      Dim fsoMain, tsfWords
      Dim iCount, iWrdCnt
      Dim iOpStatus

      '------------------------------------------
      '常變量說明
      'fsoMain :FSO對象
      'tsfWords :TEXTSTREAM對象
      'iCount :計數器。整型
      'iWrdCnt :某類詞匯單詞的數目。整型
      'iOpStatus :文件操作完畢后的狀態。整型
      '------------------------------------------

      Set fsoMain = Server.CreateObject("SCRIPTING.FILESYSTEMOBJECT")
      Set tsfWords= fsoMain.CreateTextFile(m_strFilePath & m_astrFileName(iSenPart), True)
      tsfWords.WriteLine("[" & m_astrSenPart(iSenPart) & "部分]")

      '如果該類別至少有一個單詞
      If IsEmpty(m_astrWords(iSenPart)) = False Then
      iWrdCnt = UBound(m_astrWords(iSenPart)) 1
      For iCount = 0 To (iWrdCnt - 1)
      tsfWords.WriteLine(m_astrWords(iSenPart)(iCount))
      Next
      End If

      tsfWords.Close
      iOpStatus = 0

      SaveFile = iOpStatus
      End Function

      '************************
      '函數名 :LoadFile
      '功能 :從文件中載入某類詞匯
      '輸入 :1、iSenPart :表示詞匯分類的數字。整型
      ' 可能的值有:
      ' 0:主語
      ' 1:程度狀語
      ' 2:地點狀語
      ' 3:謂語
      '輸出 :對文件操作后的狀態值。整型
      ' 可能的值有:
      ' 0:操作成功
      ' 1:操作失敗
      '************************
      Function LoadFile(iSenPart)
      Dim fsoMain, tsfWords
      Dim strLoaded
      Dim iOpStatus

      '------------------------------------------
      '常變量說明
      'fsoMain :FSO對象
      'tsfWords :TEXTSTREAM對象
      'strLoaded :某類詞匯所有單詞構成的字符串。字符串型
      'iOpStatus :文件操作完畢后的狀態。整型
      '------------------------------------------

      Set fsoMain = Server.CreateObject("SCRIPTING.FILESYSTEMOBJECT")
      If fsoMain.FileExists(m_strFilePath & m_astrFileName(iSenPart)) = True Then
      '如果存在紀錄文件
      strLoaded = ""
      Set tsfWords= fsoMain.OpenTextFile(m_strFilePath & m_astrFileName(iSenPart), 1)
      tsfWords.SkipLine
      Do While tsfWords.AtEndOfStream = False
      strLoaded = strLoaded & tsfWords.ReadLine & ","
      Loop

      If strLoaded <> "" Then
      strLoaded = Left(strLoaded, Len(strLoaded) - 1)
      m_astrWords(iSenPart) = Split(strLoaded, ",")
      Else
      m_astrWords(iSenPart) = Empty
      End If

      tsfWords.Close
      iOpStatus = 0
      Else
      '如果不存在紀錄文件
      iOpStatus = 1
      End If

      LoadFile = iOpStatus
      End Function
      %>

      <%
      '以下是服務器端腳本
      '用于測試的函數和過程

      Sub Show(strDef)
      Response.Write strDef & ": " & Eval(strDef) & "<br>"
      End Sub

      Sub ShowMethod()
      Response.Write "Request Method: " & Request.ServerVariables("REQUEST_METHOD") & "<br>"
      End Sub

      Sub ShowForm()
      Dim iCount
      Dim strProp

      iCount = 0
      Response.Write "*********Form Information******<br>"
      For Each strProp In Request.Form
      iCount = iCount 1
      Response.Write iCount & "." & strProp & ": " & Request.Form(strProp) & "<br>"
      Next
      Response.Write "*********Form End**************<br>"
      End Sub
      %>

      分享:ASP 3.0高級編程(十二)
      4.2.3 服務器端包含指令的例子 本節提供了一些示例頁面,可以用來對各種服務器端包含語句進行實驗。打開示例網頁的子目錄Chapter04,顯示“SSI Directives and the ASP Server Object&rdqu

      來源:模板無憂//所屬分類:ASP教程/更新時間:2008-08-22
      相關ASP教程