Request.BinaryRead - parse results

I need to know how to parse and manipulate the results of BinaryRead obtained like so:

ByteCount            = Request.TotalBytes
BinaryBuffer      = Request.BinaryRead(ByteCount)

I need to convert BinaryBuffer into a string, manipulate it, and then convert it back into a format in which i can do:

Response.BinaryWrite(MyModifiedBinaryBuffer)

Any ideas?
LVL 11
SweatCoderAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
deighcConnect With a Mentor Commented:
Try these functions. To use:

strBinaryRequest = RSBinaryToString(Request.BinaryRead(Request.TotalBytes))

------------------------------------------------------------------------------------------------

Function RSBinaryToString(xBinary)
      Dim Binary
      'MultiByte data must be converted To VT_UI1 | VT_ARRAY first.
      If vartype(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary
        
      Dim RS, LBinary
      Const adLongVarChar = 201
      Set RS = CreateObject("ADODB.Recordset")
      LBinary = LenB(Binary)
        
      If LBinary>0 Then
            RS.Fields.Append "mBinary", adLongVarChar, LBinary
            RS.Open
            RS.AddNew
            RS("mBinary").AppendChunk Binary
            RS.Update
            RSBinaryToString = RS("mBinary")
      Else
            RSBinaryToString = ""
      End If
End Function

Function MultiByteToBinary(MultiByte)
      Dim RS, LMultiByte, Binary
      Const adLongVarBinary = 205
      Set RS = CreateObject("ADODB.Recordset")
      LMultiByte = LenB(MultiByte)
      If LMultiByte>0 Then
            RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte
            RS.Open
            RS.AddNew
            RS("mBinary").AppendChunk MultiByte & ChrB(0)
            RS.Update
            Binary = RS("mBinary").GetChunk(LMultiByte)
      End If
      MultiByteToBinary = Binary
End Function
0
 
deighcCommented:
.... note that this just leaves you with a string - not a binary stream. You could use Response.write to output the result to the browser.
0
 
SweatCoderAuthor Commented:
i posted this late last night and, as expected, didn't get an immediate response, so i ended up having success doing it this way:

BinaryBuffer = Request.BinaryRead(Request.TotalBytes)
' Convert the binary data to ASCII
FOR counter = 1 TO LENB(BinaryBuffer)
    PostedData = PostedData & Chr(AscB(MidB(BinaryBuffer, counter,1)))
NEXT

. . .but i'm wondering if there's a way to do this without a FOR loop that traverses over every character in the binary stream. just convert the binary stream to a text stream without looping through, just for efficiency.
0
All Courses

From novice to tech pro — start learning today.