MOTOBIT.COMCreate and work with binary data in ASP/VBScript

About | IIS monitor | ASP upload | ASP dictionary | UserManager | Pure ASP upload script | Programming tips
Other articles:
Read and write SQL image data, store binary file to sql table. (WSH, Database, Conversion, VBScript)
Work with binary files in VBSscript - read and write local and remote files (WSH, File & data transfer, Functions, VBScript)
Download multiple files in one http request (File & data transfer, VBScript)
Do you like this article?
Please, rate it
and write review!
Rated:
by Aspin.com users
What do you think?
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 netShort 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 filesReading 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 VBSThis 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.

Copyright and use this code

The source code on this page and other samples at http://www.motobit.com/tips/ are a free code, you can use it as you want: copy it, modify it, use it in your products, ...
If you use this code, please:
1. Leave the author note in the source.
or
2. Link this sample from you page.
<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>

© 1996 - 2012 Antonin Foller, Motobit Software | About, Contacts | e-mail: info@pstruh.cz


Partner sites: Search Czech Last minute Zajezdy Obsah na mobil Hry na mobil Java Hry Print-shop Affiliate programy

Kurzy: Akcie | Urad prace | Zakony | Zlato | Firmy | Dane


     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.
Motobit.com