RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: VB6
Expertise: Beginner
Jun 25, 2003



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Read a Complete Text File in One Pass

Typically, you read and process a text file by using a loop and VB's Line Input statement:

Do While Not Eof(1)
	Line Input #1, myStringVar$
	' process the line here
However, you might want to defer processing or keep a copy of all the lines read for repeat processing or selective editing before writing them out again. You can achieve this quite easily by using VB' Get# and Split() statements to read the entire file at once and split it into an array containing all the lines. For example, this function returns the complete contents of a file as a string:

Public Function ReadFile(ByVal FileName As String) _
	As String
	Dim hFile As Long
	Dim bBuf() As Byte
	hFile = FreeFile
	Open FileName For Binary Access Read As #hFile
	If LOF(hFile) >hen
		ReDim bBuf(1 To LOF(hFile)) As Byte
		Get #hFile, , bBuf
		Close #hFile
		ReadFile = StrConv(bBuf, vbUnicode)
	End If
End Function
This code snippet drops the contents into an array, using the line break (vbCrLf) as a delimiter:

	Dim sLines() As String
	Dim sAll As String
	Dim i As Long

	' Read the contents of some file
	sAll = ReadFile("c:\form1.frm")

	' Split into individual lines
	sLines = Split(sAll, vbCrLf)
You can then process the file as desired; for example, you can search for specific lines:

	For i = LBound(sLines) to UBound(sLines)
		If Instr(1, "SomeText", sLines(i), _
			vbTextCompare) Then
			sLines(i) = "SomeOtherText" 
		End If
	Next i
John Cullen
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date