A faster way to read Files?

BlitzMax Forums/BlitzMax Beginners Area/A faster way to read Files?

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

This takes about 400-500 ms less time (using a bankStream)
Local fileStream:TStream = ReadStream("c:\test.txt")', True, False)
Local myBank:TBank = New TBank
Local bankStream:TBankStream = CreateBankStream(myBank)

CopyStream(fileStream, bankStream, StreamSize(fileStream))
CloseStream(fileStream)
SeekStream(BankStream, 0)
Local coord:T3DCoord = New T3DCoord


start=MilliSecs()

While Not Eof(bankStream)
	Local LineofData$ = ReadLine(bankStream)
	'Print lineofData$
	coord = GetCoords(LineOfData)
	
	Print coord.X+", "+coord.Y+", "+coord.Z
	FlushMem

Wend

Print "Time taken: " + (MilliSecs()-start) + "ms"

CloseStream(bankStream)


Type T3DCoord
	Field X:Float
	Field Y:Float
	Field Z:Float
End Type



Function GetCoords:T3DCoord(inData:String)
	Local tempCoord : T3DCoord = New T3DCoord
	Local currentChar : String = ""
	Local count : Int = 0
	Local TokenStart : Int = 0
	Local cDone:Int = 0
	Local Delim:String=","
	
	If Len(Delim)<>1 Then Return Null
	
	inData= Trim(inData)
	
	
	For count = 0 Until Len(inData)
		If inData[count..count+1] = delim Then
			Select cDone
				Case 0
					tempCoord.X=Float(Trim(inData[TokenStart..Count]))
				Case 1
					tempCoord.Y=Float(Trim(inData[TokenStart..Count]))
			End Select
			TokenStart = count + 1
			cDone :+1
		End If
	Next
	
	tempCoord.Z=Float(inData[TokenStart..Count])
	
	Return tempCoord
End Function