Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


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

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
Loop
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.

 

 

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