tags:

views:

744

answers:

1

I am using vb script to upload a file to the server. The problem I'm having is that when I set the file to ASCII format like this...

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

I get an error when the sub is called that says

Invalid procedure call or argument

but if I set the file to unicode

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

it uploads successfully but will not open because of the incorrect encoding. The line that produces the error is this one if format is ASCII is this one

oFile.Write BinaryToString(FileData)

where oFile is the ASCII file I had created above

Here is the source code that produces the error. It's an upload function I got off the net..

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

Could it be configurations on the server? If this makes any sense please help..

A: 

I suspect BinaryToString returns not only ASCII (actually the current OEM codepage) characters but also other characters in the unicode range that are outside the OEM codepage set.

What exactly does BinaryToString do?

AnthonyWJones
Kwah009
BinaryToString does return ASCII. The problem is that when I try to create the file in ASCII format, it gives me an error...See the algorythm above
Kwah009