HTML应用程序:输入文件末尾错误

时间:2012-04-30 15:19:27

标签: hta jscript

我创建了一个小型HTML应用程序来加密纯文本。实际的加密软件是用python编写的,脚本的工作方式正如我所希望的那样。我只是提供一个使用HTA的界面,问题出在那里。

我的HTA应用程序使用以下代码将用户的输入写入文本文件:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile('blah.txt',ForWriting,true);
f.WriteLine(t);
f.WriteLine(text);
f.Close();

然后,它运行python脚本(使用py2exe生成了一个可执行文件):

var shell = new ActiveXObject("WScript.shell");
shell.run("tesvc.exe");

python脚本读取文本文件,加密文本,然后将密文写回文本文件。由于这需要几分之一秒,我使用以下代码从文件中读取。

var fso = new ActiveXObject("Scripting.FileSystemObject");
var out;
do
{
    setTimeout('',1000);
    var f = fso.OpenTextFile('blah.txt',ForReading);
    if(f.AtEndOfStream)
    {
        break;
    }
    out = f.ReadLine(); //Error here.
    f.Close();
}
while(!isdone(out));

var f = fso.OpenTextFile('blah.txt',ForReading);
var out = f.ReadLine(); //Or error here.

如果第一行是=='e'或者是=='d',则python脚本尚未完成其工作。如果脚本已完成其工作,则isdone()函数返回true。

我遇到的问题是脚本间歇性地给我一个'输入过去的文件结束错误',因为其中一个var out = f.ReadLine();声明。因为我在打开它之后正在读取文件,并且我还在检查TextStream是否已经到达它的结尾,它可能无法到达结束你能否告诉我导致错误的是什么?

P.S。我知道我使用的解决方案非常粗糙,但请不要对此发表评论。

0 个答案:

没有答案