ReadFrom

          Method 
          Member of  ScriptUtils.ByteArray 

Description
Reads data from file.
Syntax
ByteArray.ReadFrom (FileName as String, [StartPosition as Variant = 1], [Length as Long])
 
Where Type Optional Default Description
 FileName  String     File to read data. 
 StartPosition  Variant  yes  1  Start position, based to 1. 
 Length  Long  yes    Number of bytes to read from file. 
Remarks
- You can read 2GB maximum data block
- 16kB - 65kB data block is a good settings for ASP download.
- StartPosition accepts 64bit integer, so you can read data blocks from files with size > 2GB.
Examples
 Download of large files in ASP  
<%
	'bigdownload.asp - download of files with size up to 2GB
	'Sample for ScriptUtils.ByteArray
	'c2003, http://www.motobit.com

	SendFileByBlocks "F:\work\WebLib.dll", 65535

	Sub SendFileByBlocks(FileName, BlockSize)
		Dim FileSize, ByteCounter
		FileSize = CreateObject("scripting.filesystemobject").GetFile(FileName).Size

		'Switch off buffer.
		Response.Buffer = False

		'This is download
		Response.ContentType = "application/x-msdownload"

		'Set file name
		Response.AddHeader "Content-Disposition", _
		  "attachment; filename=""" & GetFileName(FileName) & """"

		'Set Content-Length (ASP doen not set it when Buffer = False)
		Response.AddHeader "Content-Length", FileSize
		'Response.CacheControl = "no-cache"

		Dim BA
		Set BA = CreateObject("ScriptUtils.ByteArray")

		'Loop through file contents.
		For ByteCounter = 1 To FileSize Step BlockSize
			'Do not write data when client is disconnected
			If Not Response.IsClientConnected() Then Exit For

			'Read block of data from a file
			BA.ReadFrom FileName, ByteCounter, BlockSize

			'Write the block to output.
			Response.BinaryWrite BA.ByteArray
		Next
		
	End Sub


	Function GetFileName(FullPath)
		Dim Pos, PosF
		PosF = 0
		For Pos = Len(FullPath) To 1 Step -1
			Select Case Mid(FullPath, Pos, 1)
				Case ":", "/", "\": PosF = Pos + 1: Pos = 0
			End Select
		Next
		If PosF = 0 Then PosF = 1
		GetFileName = Mid(FullPath, PosF)
	End Function
%>
See also
  Other links for ReadFrom
Methods of ByteArray class
Properties of ByteArray class
Works with safearray binary data - save/restore binary data from/to a disk, convert to a string/hexstring, codepage/charset conversions, Base64 conversion, etc.
     ByteArray is a COM class specially designed to work with Microsoft Windows Scripting engines - VB Script and JScript in Active Server Pages or WSH and in CHM or HTA applications. It also works with VB Net, Visual basic (VBA - VB 5, VB 6, Word, Excel, Access, …), C#, J#, C++, ASP, ASP.Net, Delphi and with T-SQL OLE functions - see Use ByteArray object article. You can also use the object in other programming environments with COM support, such is PowerBuilder.
     Source code for ByteArray is available within distribution license, please see License page for ScriptUtilities and Huge ASP file upload.
      Easy to use, hi-performance ASP file upload component with progress bar indicator. Let's you upload multiple files with size up to 2GB to a disk or database along with another form fields. Works with large posts, any character set (including unicode utf-8). Contains one-click multiple files/folders download with on-the-fly compression (Using BinaryWrite/BinaryRead).
      Hi-performance text file logging for ASP/VBScript/VBA applications. Lets you create daily/weekly/monthly log files with variable number of logged values and extra timing and performance info.
       Lets you work with safearray binary data in VBS/JS. It also enables conversion between binary and String data using several code pages. ZLib compress and uncompress functions. Lets you transfer files using compressed stream from a client to server using IE.
      This library also enables calling of some Kernel and Advapi functions (performance, timing, sleep, configuration ...) and enables native work with INI files.


© 1996 – 2005 Motobit Software, help{at}pstruh.cz, help v. 2.16.14