1

VB脚本示例:

Function ADO_WriteToFile(FileURL,data)
Dim arrBytes
    SET ADObj = CreateObject("ADODB.Stream")
    ADObj.Open
    ADObj.Charset = "iso-8859-1" 
    ADObj.Type = adTypeText
    ADObj.WriteText data
    ADObj.SaveToFile FileURL, adSaveCreateOverwrite
    ADObj.Close
    ADObj.Open
    ADObj.Type = adTypeBinary
    ADObj.LoadFromFile FileURL
    ADObj.Position = 3
    arrBytes = ADObj.Read
    ADObj.Position = 0
    ADObj.SetEOS
    ADObj.Write data
    ADObj.SaveToFile FileURL, adSaveCreateOverwrite
    ADObj.Close
End Function

JScript 示例:

function writeTo(fileName,str) {
var ado =  new ActiveXObject("ADODB.Stream");
ado.Type = 2;
ado.Open();
ado.Position = 0;
ado.WriteText(str,0);
ado.SaveToFile(fileName,2);
ado.Close();
ado.Open();
ado.Type = 1;

ado.Position = 2;//line 19
var temp = ado.Read();
ado.Position = 0;
ado.SetEOS;
ado.Write(temp);
ado.SaveToFile(fileName,2);
ado.Close();
}

为什么 VBScript 示例除了不能接受带有空格的文件路径之外,还能完美运行?

JScript 示例出错并显示消息“对参数的分配不正确”。第 19 行。但是,如果我将 Position 设置为 0,则不会发生这种情况:

ado.Position = 0;

我正在使用它将二进制文件写入磁盘顺便说一句

4

1 回答 1

0

以下是一些区别:

  • 在 VBScript 版本中,位置设置为 3;在 JScript 版本中,设置为 2
  • 在 VBScript 版本中,定义了字符集;在 JScript 版本中,它是未定义的
  • 在 VBScript 版本中,WriteText 和 write 都引用了参数;在 JScript 版本中,只有 WriteText 引用它

参考

于 2013-08-28T06:27:55.107 回答