当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP实例:词语搭配游戏的制作

ASP
ASP基础讲座(下)
解决IIS5 HTTP500内部错误
ASP 3.0高级编程(四十六)
ASP 3.0高级编程(四十五)
ASP 3.0高级编程(四十四)
ASP 3.0高级编程(四十三)
ASP 3.0高级编程(四十二)
ASP 3.0高级编程(四十一)
ASP 3.0高级编程(三十九)
ASP 3.0高级编程(三十八)
ASP 3.0高级编程(三十七)
ASP 3.0高级编程(三十六)
ASP 3.0高级编程(三十五)
ASP 3.0高级编程(三十四)
ASP 3.0高级编程(三十三)
ASP 3.0高级编程(三十二)
ASP 3.0高级编程(三十一)
ASP错误代码说明
jscript错误代码及相应解释大全
ASP错误处理

ASP实例:词语搭配游戏的制作


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 65 ::
收藏到网摘: n/a

这是个关于词语搭配的游戏,是用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="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: [email protected]" 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
%>