0

我想制作注册表并使用 ActiveXObject 将数据写入 data.txt。我写的是

<script type="text/javascript">
    function WriteFile()
    {
       var fso  = new ActiveXObject("Scripting.FileSystemObject");
       var fh = fso.CreateTextFile("E:\\Test.txt", true);
       x=document.getElementById("name").value;
       y=document.getElementById("password").value;
       fh.WriteLine(x+"#"+y);
       fh.Close();
    }
</script>
<BODY>
<form>
    <input type="text" id="name"/>
    <input type="text" id="password"/>
    <input type="button" value="Sign Up" id="write" onclick="WriteFile()"/>
</form>
</BODY>

当我尝试这种方式时,每次单击“注册”按钮时,新数据都会覆盖以前的数据。我尝试使用fh.AppendLine(x + "#" + y)但没有用。

谁能帮助我如何添加数据,而不是覆盖数据?

4

4 回答 4

1

我很久以前做过这样的事情......(当我使用Windows时)我认为这是因为你用新文件替换文件CreateTextFile所以如果文件已经存在你需要这样做:

function AppendLine()
{
   var fso  = new ActiveXObject("Scripting.FileSystemObject");
   var fh = fso.OpenTextFile("E:\\Training Asslab\\Advance\\Write to File\\Test.txt", 8, True);
   x=document.getElementById("name").value;
   y=document.getElementById("password").value;
   fh.WriteLine(x+"#"+y);
   fh.Close();
}
于 2012-04-17T16:13:06.823 回答
1

我认为 CreateTextFile 会覆盖当前文件。在创建它之前,您应该使用 FileExists 来检查它的存在。如果确实存在,您可以使用 OpenTextFile。

这是相关文档

于 2012-04-17T16:13:36.050 回答
1

免责声明您不应该使用这些功能。他们只在 IE 中工作,而且很糟糕。

我认为您的问题源于使用CreateTextFile. 您应该OpenTextFile将第二个参数设置为8. 这将允许追加。

于 2012-04-17T16:14:07.270 回答
1

使用带有创建标志和 ForAppending 模式的OpenTextFile方法,而不是CreateTextFile.

但是,请理解,您不仅将自己限制在非常旧的 IE 版本和受信任区域内,而且还将文件留在用户的本地驱动器上,而不是在您的服务器上。因此,您无法使用此“注册数据”做任何事情。

于 2012-04-17T16:17:44.360 回答