Create and work with binary data in ASP/VBScript
ActiveX RegEdit.   ActiveX User account Manager   Pure-ASP Upload
Export MDB/DBF from ASP   Active LogFile   WebChecker   ActiveX/ASP Multi Dictionary object
 See 
 also 
 IISTracer, real-time IIS monitor and logging tool.
 Huge ASP file upload with progress bar. 



Do you like this article?
Please, rate it
and write review!
Rated:
by Aspin.com users
What do you think?
 Top messages
 22.3.2003 19:18:41 
 Read and write SQL image data, store binary file to sql table. (nbsp;WSHDatabaseConversionVBScript)
 4.5.2002 9:16:43 
 Send an email from ASP (WSH) using VBSscript, CDONTS and Outlook. (nbsp;ASP / ASP.NetWSHVBScriptEmail)
 12.6.2003 9:14:29 
 Download multiple files in one http request (nbsp;File & data transferVBScript)

 Create and work with binary data in ASP/VBScript 

 Areas>Languages>VBScript
 Areas>ASP / ASP.Net>Functions>Conversion
 Areas>ASP / ASP.Net>Response control

      To work with real binary data (Safearray of bytes, VT_UI1 | VT_ARRAY ) see ByteArray class of ScriptUtilities library. ByteArray class lets you prepare binary data, save/restore the data from a disk, do conversion between binary and string data using several code pages (ansi, oem, utf8, )

    ASP cannot work with real binary data (Safearray of bytes, VT_UI1 | VT_ARRAY ). But you can use multibyte string functions which enables work with byte array data. Most of the standard string functions (Mid, Left, Len, ...) have its multibyte twins (MidB, LeftB, LenB, ...).
    Although the functions are pure commented in ASP/VBS documentation, you can create and convert binary data from BinaryRead and BinaryWrite by the set of functions :

Multibyte functions, BinaryRead and BinaryWrite

Dim i, MyMultiByte
For i=1 To 255
    MyMultiByte = MyMultiByte & ChrB(i)
Next 
Response.Buffer = True
Response.ContentType = "Application/Crazzy"
Response.BinaryWrite MyMultiByte
    You can also create convert function from String to binary :
Function StringToMultiByte(S)
  Dim i, MultiByte
  For i=1 To Len(S)
    MultiByte = MultiByte & ChrB(Asc(Mid(S,i,1)))
  Next
  StringToMultiByte = MultiByte
End Function
    And use the function :
Response.BinaryWrite StringToBinary("My first binary string.")

    You can work with binary data from BinaryRead by the same way :
Binary = Request.BinaryRead(Request.ServerVariables("HTTP_Content_Length"))
bString = BinaryToString(Binary)
Response.Write bString
'Of course, you can use Response.BinaryWrite Binary :-)
Where BinaryToString is :

Function BinaryToString(Binary)
  Dim I, S
  For I = 1 To LenB(Binary)
    S = S & Chr(AscB(MidB(Binary, I, 1)))
  Next
  BinaryToString = S
End Function
Function BinaryToString accepts binary or multibyte data on input (Binary parameter)

Real binary data

      Although VBS cannot work with real binary data, you can use some free object to convert string data to binary. Stream_StringToBinary fuction lets you convert string to binary data using ADODB.Stream. Stream_StringToBinary returns real binary data - VT_UI1 | VT_ARRAY Variant type.
'Stream_StringToBinary Function
'2003 Antonin Foller, http://www.motobit.com
'Text - string parameter To convert To binary data
'CharSet - charset of the Text - default is "us-ascii"
Function Stream_StringToBinary(Text, CharSet)
  Const adTypeText = 2
  Const adTypeBinary = 1
  
  'Create Stream object
  Dim BinaryStream 'As New Stream
  Set BinaryStream = CreateObject("ADODB.Stream")
  
  'Specify stream type - we want To save text/string data.
  BinaryStream.Type = adTypeText
  
  'Specify charset For the source text (unicode) data.
  If Len(CharSet) > 0 Then
    BinaryStream.CharSet = CharSet
  Else
    BinaryStream.CharSet = "us-ascii"
  End If
  
  'Open the stream And write text/string data To the object
  BinaryStream.Open
  BinaryStream.WriteText Text
  
  
  'Change stream type To binary
  BinaryStream.Position = 0
  BinaryStream.Type = adTypeBinary
  
  'Ignore first two bytes - sign of
  BinaryStream.Position = 0
  
  'Open the stream And get binary data from the object
  Stream_StringToBinary = BinaryStream.Read
End Function

    To save/retrieve binary data from disk, binary file upload and download in ASP or better work with binary data (use any code page - ANSI, MAC, unicode UTF-8, search binary data, etc.) see Pure and Huge asp file upload.  
 

See also for 'Create and work with binary data in ASP/VBScript' article:

     Convert data to another charset/codepage in vb net Short sample to convert String Unicode data to another charset/codepage using System.Text.Encoding
     Read and write SQL image data, store binary file to sql table. Store and read SQL image/binary data using functions in this article. You can store local or remote files in an sql table along with a description and other fields.
     Work with binary files in VBSscript - read and write local and remote files Reading and writting binary and text files is a first task you will need to solve in server-side ASP. This article contains several VBS functions which let's you store data to local disk and read local or remote (http) files.
     Convert a binary data (BinaryRead) to a string by VBS This article, demonstrates several versions of source VBS code you can use to work with binary data in ASP and convert the data to a String format.

If you like this page, please include next link on your pages:
<A
 Href="http://www.motobit.com/tips/detpg_BinASP/"
 Title="Lets you convert/create binary data in
  ASP to use the data
  for BinaryWrite/BinaryRead."
>Create and work with binary data in ASP/VBScript</A>

     IISTracer - IIS ISAPI real-time monitor IISTracer is a real-time monitoring tool for Microsoft IIS, which will show/log you what is happenning on IIS server right now. It let's you reveal problems with long-running scripts (.asp, .cgi, cfm...), hang-up states and low resource situations and lets you stop long-running requests (uploads/downloads).      ActiveX User account Manager - Set of simple objects for creating, deleting, and managing user accounts, groups, servers and domains in the Windows NT environment.
     Active log file - Hi-performance text file logging for ASP/VBS/VBA applications. Lets you create daily/weekly/monthly log files with variable number of logged values and extra timing and performance info.      ActiveX windows registry editor - Intuitive, easy to use COM interface to windows registry. Set of classes to read/enumerate/modify windows registry keys and values from ASP, VBS and T-SQL.
     ActiveX/ASP Multi Dictionary object - Free-threaded hi-speed dictionary algorithm with unique/nonunique keys (map/multimap). Connect to another dictionary object in the same process. Lock and Unlock methods to synchronize tasks (application scope). Share ASP Application/Session objects.      Export DBF/MDB from ASP - Conversion from recordset to MDB/DBF. Direct binary output of MDB or DBF files from ASP pages with one row of code.
     Pure-ASP upload - lets you upload files using Pure ASP VBS code (using multipart/form-data and input type=file).      ByteArray - Works with safearray binary data (VT_UI1 | VT_ARRAY) - save/restore binary data from disk, find, work with code pages, convert to string/hexstring(SQL).
     WebChecker - Checks http, https, ftp and gopher internet connections in regular intervals. Lets you monitor web site functionality (uptime). Enables restart or notification on problems.      HTTPLog ISAPI filter - Lets you log incomming/outgoing http header and document data to separate files. Monitor of IIS service input/output.

© 1996 – 2010 Antonin Foller, PSTRUH Software, e-mail help@pstruh.cz