Scream Through Searches With Byte Arrays

This subroutine shows how byte arrays can speed a search though a file.The routine is called with the file name, a string to look for, a flagthat tells it to use a string variable or a byte array and a flag thattells it to look for Unicode or ANSII strings (strings in VB4 EXEs arein Unicode). My test, with ibyte set to true (use byte array) took aboutsix seconds to search though 32-bit WINWORD.EXE. The same file with ibyteset to false (use string variable) ran in about 36 seconds. The file isalmost 4 MB.

 Sub Searchfile(sFile As String, sSearch As String, ibyte _ As Boolean, iUniCode As Boolean)	'sFile - file name	'sSearch - string to search for	'ibyte - use byte array to search	'iUniCode - look for UniCode strings	Dim iHandle As Integer	Dim sTemp As String	Dim lSpot As Long	Dim lFind As Long	Dim sSearch1 As String	Dim bTemp() As Byte	'another advantage of using a byte array	'is that we can easily look for UniCode strings	If iUniCode Or (Not ibyte) Then		'this line will look for unicode strings		'when using byte arrays, regular 		'strings when using string variable		sSearch1 = sSearch	Else		'this line will look for ANSII strings 		'when looking through a byte array		sSearch1 = StrConv(sSearch, vbFromUnicode)	End If	iHandle = FreeFile	Open sFile For Binary Access Read As iHandle	If iHandle Then		sTemp = Space$((LOF(iHandle) / 2) + 1)		ReDim bTemp(LOF(iHandle)) As Byte		If ibyte Then			Get #iHandle, , bTemp			sTemp = bTemp		Else			Get #iHandle, , sTemp		End If		Close iHandle	End IfDo	If ibyte Then		lFind = InStrB(lSpot + 1, sTemp, _			sSearch1, 1)	Else		lFind = InStr(lSpot + 1, sTemp, sSearch1, 1)	End If	lSpot = lFindLoop Until lFind = 0End Sub
Share the Post:
Share on facebook
Share on twitter
Share on linkedin


The Latest

homes in the real estate industry

Exploring the Latest Tech Trends Impacting the Real Estate Industry

The real estate industry is changing thanks to the newest technological advancements. These new developments — from blockchain and AI to virtual reality and 3D printing — are poised to change how we buy and sell homes. Real estate brokers, buyers, sellers, wholesale real estate professionals, fix and flippers, and beyond may

man on floor with data

DevX Quick Guide to Data Ingestion

One of the biggest trends of the 21st century is the massive surge in internet usage. With major innovations such as smart technology, social media, and online shopping sites, the internet has become an essential part of everyday life for a large portion of the population. Due to this internet

payment via phone

7 Ways Technology Has Changed Traditional Payments

In today’s digital world, technology has changed how we make payments. From contactless cards to mobile wallets, it’s now easier to pay for goods and services without carrying cash or using a checkbook. This article will look at seven of the most significant ways technology has transformed traditional payment methods.