1

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, 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 バージョンでは、position は 3 に設定されています。JScript バージョンでは、2 に設定されています。
  • VBScript バージョンでは、文字セットが定義されています。JScript バージョンでは未定義です。
  • VBScript バージョンでは、WriteText と write の両方が引数を参照します。JScript バージョンでは、WriteText のみがそれを参照します。

参考文献

于 2013-08-28T06:27:55.107 に答える