猿问

这段代码有些不懂?

<script type="text/javascript">
	function TextStreamTest(fn,an,n) 
	{
		var fso,f,ts,s;
		var ForRWA=0,ForWriting=2,ForAppending=8,ForReading=1;
		var TristateUseDefault=-2;//,TristateTrue=-1,TristateFalse=0;
		fso=new ActiveXObject("Scripting.FileSystemObject");
		var s1=an.innerHTML;  //这里
		if(fn.value!="")
		{
			f=fso.GetFile(fn.value);
			switch(n)
			{
				case 1:ForRWA=ForWriting;break;     //修改文件
				case 2:ForRWA=ForAppending;break;   //追加文件
			}
			if(n>0)
			{
				ts=f.OpenAsTextStream(ForRWA,TristateUseDefault);
				var s1=an.innerHTML;  //这里
				ts.Write(s1);
				ts.Close();
			}
			ts=f.OpenAsTextStream(ForReading,TristateUseDefault);
			s=ts.ReadLine();  //读取文件中的信息
			ts.Close();
		}
		return(s);
	}
	function run(n)
	{
		document.form3.textarea1.innerHTML=TextStreamTest(document.form5.text1,document.form4.textarea2,n);
	}
</script>
</head>
<body>
<table width="392" border="1">
	<tr>
	  <td height="24" colspan="2">
	    <form name="form5" method="post" action="">
	  	文件路径:<input type="textfield" name="text1" value="f:\text2.txt" size="40">
	    </form>
	  </td>
	</tr>	
	<tr>
		<td width="207" height="163">
		    <form name="form3" method="post" action="">
		    	<textarea name="textarea1" cols="30" rows="10"></textarea>
		    </form>
		</td>
		<td width="169">
			<form name="form4" method="post" action="">
				<textarea name="textarea2" rows="10"></textarea>
			</form>
		</td>
	</tr>
    <tr>
    	<td height="28">
    		<form name="form1" method="post" action="">
    			<input type="button" name="Button" value="读取" onclick="run(0)">
    		</form>
    	</td>
    	<td>
    		<form name="form2" method="post" action="">
    			<input type="button" name="Submit2" value="写入" onclick="run(1)">
    			<input type="button" name="Button" value="添加" onclick="run(2)">
    		</form>
    	</td>
    </tr>
</table>	
var s1=an.innerHTML;  //为什么要放两个?明明一个就行。


按我的理解这段代码作用就是当n=0的时候,读取文件中的内容,可是加了else却运行不了,为什么?

ts=f.OpenAsTextStream(ForReading,TristateUseDefault);
			s=ts.ReadLine();  //读取文件中的信息
			ts.Close();


错过了年华
浏览 1342回答 2
2回答

慕田峪3555374

你理解错了,那程序是不论n为何值,只要text框有值即存在文件就读取文件信息,至于n只是判断是网文件里追加内容还是写入新的内容

aaaaaaaaten

第一个问题,两次的调用穿值肯定不一样的。第二个问题,你else加在后面,里面不放代码,按理说是没问题的吧
随时随地看视频慕课网APP
我要回答