Solved

Request.BinaryRead - parse results

Posted on 2004-09-15
3
837 Views
Last Modified: 2008-02-01
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?
0
Comment
Question by:SweatCoder
  • 2
3 Comments
 
LVL 15

Accepted Solution

by:
deighc earned 500 total points
ID: 12072923
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
 
LVL 15

Expert Comment

by:deighc
ID: 12072932
.... 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
 
LVL 11

Author Comment

by:SweatCoder
ID: 12075479
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

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hello, all! I just recently started using Microsoft's IIS 7.5 within Windows 7, as I just downloaded and installed the 90 day trial of Windows 7. (Got to love Microsoft for allowing 90 days) The main reason for downloading and testing Windows 7 is t…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question