slightly different test:
using 11872 lines of :
(4.1 seconds at command prompt)
Local file=OpenFile("c:\test.txt") start=MilliSecs() Local coord:T3DCoord = New T3DCoord Local list:TList While Not Eof(file) Local LineofData$ = ReadLine(file) 'Print lineofData$ coord = GetCoords(LineOfData) Print coord.X+", "+coord.Y+", "+coord.Z FlushMem Wend Print "Time taken: " + (MilliSecs()-start) + "ms" CloseFile file 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
using 11872 lines of :
-1.000000,1.000000,2.00000
(4.1 seconds at command prompt)