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