2009-06-30 11 views
2

vbスクリプトを使用してファイルをサーバーにアップロードしています。私がいる問題は、私は、このようなASCII形式にファイルを設定した場合ということです...vbscriptのプロシージャコールまたは引数が無効です

Set oFile = oFS.CreateTextFile(sPath & FileName, True, False) 

私は

無効なプロシージャ呼び出しまたは引数を言うサブが呼び出されたエラーを取得します

が、私は

Set oFile = oFS.CreateTextFile(sPath & FileName, True, True) 

をUnicodeにファイルを設定した場合、それがアップロード正常に終了しましたが、誤ったエンコーディングのために開けません。フォーマットがASCIIの場合は、エラーが発生し 行はこの1つであるoFileは私がここで

上に作成したASCIIファイルです。この1

oFile.Write BinaryToString(FileData) 

はエラーを生成したソースコードがありますさ。アップロード機能です。ネットから降りました。

Public Sub SaveToDisk(sPath) 
     Dim oFS, oFile 
     Dim nIndex 

     If sPath = "" Or FileName = "" Then Exit Sub 
     If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\" 

     Set oFS = Server.CreateObject("Scripting.FileSystemObject") 
     If Not oFS.FolderExists(sPath) Then Exit Sub 

     Set oFile = oFS.CreateTextFile(sPath & FileName, True, False) 
     oFile.Write BinaryToString(FileData) 

     oFile.Close 
    End Sub 

    Function BinaryToString(Binary) 
     'Antonin Foller, http://www.motobit.com 
     'Optimized version of a simple BinaryToString algorithm. 

     Dim cl1, cl2, cl3, pl1, pl2, pl3 
     Dim L 
     cl1 = 1 
     cl2 = 1 
     cl3 = 1 
     L = LenB(Binary) 

     Do While cl1<=L 
      pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1))) 
      cl1 = cl1 + 1 
      cl3 = cl3 + 1 
      If cl3>300 Then 
       pl2 = pl2 & pl3 
       pl3 = "" 
       cl3 = 1 
       cl2 = cl2 + 1 
       If cl2>200 Then 
        pl1 = pl1 & pl2 
        pl2 = "" 
        cl2 = 1 
       End If 
      End If 
     Loop 
     BinaryToString = pl1 & pl2 & pl3 
    End Function 

サーバ上で設定できますか?これが意味をなさないのであれば...

+0

どのようなデータ型がFILEDATAで開催され、どのようにそれが最初の場所で取得されましたか? – AnthonyWJones

答えて

0

私は、BinaryToStringがASCIIコード(実際には現在のOEMコードページ)だけでなく、OEMコードページセット以外のユニコード範囲の他の文字も返すと思われます。

BinaryToStringは正確に何をしますか?

Set oFile = oFS.CreateTextFile(sPath & FileName, 8) 

このページでは、私には有用であった:

+0

ファンクションBinaryToString(バイナリ) \t \t 'Antonin Foller、http://www.motobit.com \t \t'単純なBinaryToStringアルゴリズムの最適化バージョン。 \t \t \t \t薄暗いCL1、CL2、CL3、PL1、PL2、PL3 \t \t薄暗いL \t \t CL1 = 1 \t \t CL2 = 1 \t \t CL3 = 1 \t \t L = LENB(バイナリ) \t \t \t \tドゥCL1 <= L \t \tながら210 PL3 = PL3&chrです(ASCB(MIDB(バイナリ、cl1,1))) \t \t \t CL1 = CL1 + 1 \t \t \t CL3 = CL3 + 1 \t \t \t場合CL3> 300そして \t \t \t \t PL2 = PL2&PL3 \t \t \t \t PL3 = "" \t \t \t \t CL3 = 1 \t \t \t \t CL2 = CL2 + 1 \t \t \t \t場合CL2> 200そして \t \t \t \t \t PL1 = PL1およびPL2 \t \t \t \t \t PL2 = "" \t \t \t \t \t CL2 = 1 \t \t \t \t終了の場合 \t \t \t \tループ \t \t BinaryToString = PL1&PL2&PL3 \tエンド機能 – Kwah009

+0

BinaryToStringはASCIIを返さない場合\t終了。問題は、ファイルをASCII形式で作成しようとすると、エラーが発生することです... 上記のalgorythmを参照してください – Kwah009

関連する問題