2009-06-30 3 views
2

vb 스크립트를 사용하여 서버에 파일을 업로드하고 있습니다. 제가하는 데 문제는이 같은 ASCII 형식으로 파일 ...vbscript의 프로 시저 호출이나 인수가 올바르지 않습니다.

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

을 설정할 때 서브가 호출 될 때 나는

잘못된 프로 시저 호출 또는 인수를 말한다 오류가 있다는 것입니다

내가

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

을 유니 코드로 파일을 설정하면 있지만 업로드 성공적으로 인코딩되었지만 잘못된 인코딩으로 인해 열리지 않습니다. 형식은 ASCII가 oFile가 여기에 오류가 발생 소스 코드는 내가

위에서 만든했던 ASCII 파일입니다이 하나

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 (Binary) \t \t 'Antonin Foller, http://www.motobit.com \t \t'간단한 BinaryToString 알고리즘의 최적화 된 버전입니다. \t \t \t \t 어둡게 CL1, CL2, CL3, PL2, PL1, 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,223 동안210 PL3 = PL3 및 대하 (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 012,329,\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