Solved

Request.BinaryRead - parse results

Posted on 2004-09-15
3
867 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
How to show result of a NULL value at random? 33 60
Select only the top record in a left join 13 50
JS does not refresh 6 44
send email part1 9 53
I recently decide that I needed a way to make my pages scream on the net.   While searching around how I can accomplish this I stumbled across a great article that stated "minimize the server requests." I got to thinking, hey, I use more than one…
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…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
This video shows how to use Hyena, from SystemTools Software, to update 100 user accounts from an external text file. View in 1080p for best video quality.

752 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