在HTA应用程序中使用ADODB.stream的vbscript和jscript之间的奇怪行为差异
VBscript示例:在HTA应用程序中使用ADODB.stream的vbscript和jscript之间的奇怪行为差异,vbscript,stream,ado,jscript,hta,Vbscript,Stream,Ado,Jscript,Hta,VBscript示例: 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, adSaveCre
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
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();
}
JScript示例:
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
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行。如果我将位置设置为0,则不会发生这种情况,但是:
ado.Position = 0;
我用它将二进制文件写入磁盘,顺便说一句,这里有一些区别:
- 在VBScript版本中,位置设置为3;在JScript版本中,它被设置为2
- 在VBScript版本中,定义了字符集;在JScript版本中,它是未定义的
- 在VBScript版本中,WriteText和write都引用参数;在JScript版本中,只有WriteText引用它