A faster way to read Files?

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

Mhhh, loading Data that way:

Local file=OpenFile(GeoDatpath$)
While Not Eof(file)
LineofData$=ReadLine(file)
Wend
CloseStream File

took me around 2-3 minutes.

If i open the File with an MS Editor it tooks around 3 secs (!).

As more lines BMax reads, as slower it gets.
How would you get acces to a large chunk of Data?
Data are simple x,y,z coords
-1.000000,1.000000,2.00000
-1.000000,1.000000,2.00000

Not sure how ReadLine works.
Would it be faster to read it from memory (which means that porting the file on HD to a memory bank should be faster then 3 minutes)?
Any suggestions?

how big is the file you are reading?

this takes 60ms for me:
Local file=OpenFile("c:\test.txt")

start=MilliSecs()
While Not Eof(file)
Local LineofData$ = ReadLine(file)
'Print lineofData$
FlushMem
Wend
Print "Time taken: " + (MilliSecs()-start) + "ms"
CloseFile file

or about 700ms when I uncomment print

Sample text:
    * Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    * Phasellus condimentum tortor ac justo.
    * Phasellus convallis lectus sed mauris.
    * Mauris dapibus tincidunt massa.
    * In pretium nisl et diam.
    * Donec non nisl eu risus condimentum ornare.

    * Nulla pharetra diam sit amet eros.
    * Curabitur lacinia euismod libero.
    * Maecenas ac pede in est rutrum malesuada.
    * Maecenas tincidunt faucibus magna.
    * Donec vestibulum tempus elit.
    * Maecenas ornare est eget quam.
    * Sed imperdiet ligula ac nunc.

    * Fusce ac felis in enim sagittis varius.
    * Nam vehicula convallis metus.
    * Phasellus malesuada tortor in enim.

    * Praesent aliquam iaculis massa.
    * Aliquam at justo quis pede ultrices placerat.
    * Cras sed est non nibh placerat pellentesque.
    * Donec rutrum pulvinar mi.
    * Sed pellentesque condimentum massa.
    * Pellentesque in lectus id augue tristique consectetuer.
    * Sed consequat tempor mi.

    * Nulla congue arcu et augue.
    * Donec luctus neque non mi feugiat placerat.
    * Integer eget sem ac magna vehicula eleifend.
    * Maecenas pretium velit at ipsum.
    * Praesent tempor odio quis mi.
    * Proin tempus justo in ligula.
    * Maecenas id neque vitae diam aliquet gravida.
    * Nam a quam sed odio sagittis sollicitudin.

    * Aenean cursus pellentesque metus.
    * Integer lacinia ipsum sit amet orci.
    * In a massa ut massa sollicitudin tempus.

    * Maecenas fringilla nunc at libero.
    * Nam nec purus a risus pulvinar mattis.
    * Aliquam eget lectus sit amet nibh scelerisque porta.

    * Donec pulvinar augue eu magna.
    * Suspendisse consequat sodales dolor.
    * Nam sodales interdum erat.
    * In sodales euismod mi.
    * Ut rutrum convallis urna.
    * Nullam et justo ac wisi viverra elementum.

    * Vivamus hendrerit pharetra odio.
    * Aenean mattis euismod nibh.
    * Vivamus et augue nec lectus imperdiet suscipit.
    * Curabitur condimentum risus vel mauris volutpat pulvinar.
    * Sed posuere ante non nisl.
    * Morbi a dui non libero pharetra pellentesque.

    * Aliquam fermentum nisl non sem venenatis venenatis.
    * Vestibulum posuere laoreet tortor.
    * Donec congue egestas metus.
    * Quisque sed ligula non diam aliquet luctus.
    * Etiam accumsan justo sollicitudin odio.

    * Morbi molestie scelerisque elit.
    * Curabitur vehicula eros id magna.
    * Morbi suscipit venenatis urna.
    * Vestibulum vel purus nec velit congue elementum.
    * Duis sit amet dui nec felis congue eleifend.

    * Aenean lobortis iaculis sem.
    * Nulla at sapien sed felis ultrices semper.
    * Aliquam eleifend mi vitae ante.
    * Integer congue pede vitae massa.
    * Maecenas a erat a turpis tincidunt aliquam.

    * Nunc imperdiet vulputate dolor.
    * Nunc id massa sit amet nisl consequat lobortis.
    * Sed condimentum eleifend wisi.

    * Vivamus cursus justo at nibh.
    * Nulla tincidunt velit sit amet mauris.
    * Pellentesque a eros vitae turpis congue euismod.
    * Phasellus tincidunt pharetra quam.
    * Sed gravida interdum est.
    * In molestie nunc non urna.

    * Nullam sollicitudin dui et sapien.
    * Nam dignissim tincidunt ante.
    * Sed eget orci sed augue aliquet nonummy.
    * Aenean fringilla felis placerat nunc.
    * Aenean ultricies lacus vel erat.

    * Donec varius semper quam.
    * Integer dignissim accumsan nulla.
    * Sed gravida vulputate purus.
    * Aenean dictum est et tellus dignissim ultrices.
    * Nam mattis velit ac purus.
    * In quis nibh sit amet justo pellentesque pretium.

    * Praesent blandit purus et arcu.
    * In iaculis ipsum id mauris.
    * Quisque porttitor molestie sapien.
    * Nulla facilisis nibh at odio.
    * Aenean auctor risus ac mauris consequat mattis.

    * Curabitur in eros quis risus semper congue.
    * Sed in wisi a pede malesuada egestas.
    * Ut at augue id tortor elementum accumsan.
    * Cras ornare mauris at est cursus malesuada.
    * Suspendisse rutrum enim ut sem.

    * Nunc dictum felis id neque.
    * Proin in metus consectetuer libero ultricies sagittis.
    * Mauris placerat posuere dolor.
    * Vivamus bibendum pretium quam.
    * Etiam adipiscing diam quis mauris.
    * Proin varius risus nec leo.

    * Curabitur ac tortor quis diam lacinia egestas.
    * Mauris vel justo nec diam luctus feugiat.
    * Duis molestie quam at est.
    * Donec blandit elementum odio.
    * Nullam in lacus et erat placerat bibendum.
    * Vivamus fringilla est fermentum augue.
    * Duis ullamcorper enim nec wisi.

    * Nullam sit amet augue ac magna elementum convallis.
    * Ut ornare nibh eget elit.
    * Aenean pretium dignissim risus.
    * Duis ut erat in metus convallis imperdiet.
    * Pellentesque egestas nonummy massa.

    * Fusce non wisi id mauris vestibulum aliquet.
    * Proin sollicitudin lorem rutrum dui.
    * Etiam scelerisque nisl vitae mi.
    * Cras eleifend lacinia leo.
    * Nam cursus wisi placerat tellus.
    * Ut consequat ipsum id eros porta aliquet.
    * Sed at dolor sed quam pellentesque fringilla.

    * Cras at magna id mauris egestas cursus.
    * Nullam vulputate neque sit amet eros.
    * Pellentesque vitae quam eget lectus pretium porttitor.
    * Curabitur laoreet mauris sit amet augue.

    * Sed vehicula sollicitudin neque.
    * Sed pulvinar neque sed urna.
    * Vivamus pretium consequat sem.
    * Curabitur tristique quam a nibh.
    * Nullam tempor consectetuer lorem.
    * In sit amet lorem sit amet wisi pretium ullamcorper.

    * Donec ultrices venenatis leo.
    * Etiam porttitor condimentum nisl.
    * Fusce auctor quam id massa.

    * Fusce nec est vel mauris tincidunt cursus.
    * Etiam commodo leo quis velit.
    * Nunc ac nunc in libero convallis gravida.
    * Nam suscipit justo in nulla luctus convallis.
    * Vivamus pulvinar accumsan nibh.

    * Nulla in elit ut leo imperdiet aliquam.
    * Nam tempus volutpat dui.
    * Donec laoreet egestas nulla.
    * Donec in libero laoreet mauris tempor tempor.
    * Nunc facilisis augue ut elit.

    * In id augue vel nunc placerat feugiat.
    * Phasellus in ligula nec tortor rhoncus rhoncus.
    * In vitae sapien non tellus tincidunt luctus.
    * Morbi nonummy massa id elit.
    * In nec mauris mollis enim posuere tincidunt.

    * Fusce ultricies diam at massa.
    * Quisque mollis pellentesque lectus.
    * Nulla pretium elementum ligula.

    * Praesent nonummy pede at diam.
    * Integer eget metus non augue ullamcorper luctus.
    * Morbi vehicula volutpat metus.
    * Aliquam sed pede nec arcu nonummy blandit.

    * Suspendisse vitae nisl sed ante tempus tempus.
    * Fusce ut velit nec est porta convallis.
    * Mauris volutpat eros nec tortor.
    * Sed dictum ornare dolor.
    * Aenean varius enim at leo.
    * Proin facilisis nulla vestibulum wisi.
    * Donec blandit diam nec diam.

    * Sed consectetuer consectetuer erat.
    * Aenean facilisis risus ac sapien condimentum egestas.
    * Fusce accumsan magna non libero hendrerit ornare.
    * Fusce tincidunt aliquam eros.
    * Donec vestibulum fringilla tortor.
    * Sed iaculis laoreet purus.

    * Nunc blandit hendrerit justo.
    * Ut ac nunc at nulla faucibus iaculis.
    * Aliquam gravida metus a urna.
    * Pellentesque tempus neque viverra purus.

    * In tincidunt consequat leo.
    * Praesent sodales eros dictum turpis.
    * Fusce eleifend odio in neque.

    * Etiam eget sapien nec eros ultrices suscipit.
    * Vivamus vitae metus vel erat gravida vehicula.
    * Aenean dignissim arcu non mi.

    * Aliquam vehicula tortor et turpis.
    * Etiam sodales metus in turpis fringilla luctus.
    * In gravida feugiat metus.
    * Duis sed erat congue nulla elementum laoreet.
    * Praesent sit amet tortor eu purus eleifend eleifend.

    * Maecenas auctor arcu vitae augue.
    * Pellentesque feugiat tempor lorem.
    * Suspendisse in est et lacus scelerisque lobortis.
    * Pellentesque vel magna at eros venenatis mollis.

    * Suspendisse cursus tristique sapien.
    * Nam sit amet leo vel diam gravida hendrerit.
    * Donec imperdiet faucibus est.

    * Duis porta felis eget velit.
    * Proin dictum wisi non elit.
    * Fusce non lacus at lacus dignissim dignissim.
    * Maecenas condimentum tellus ut lorem.
    * Quisque tempus pede quis ipsum consectetuer ultricies.
    * Donec non mauris vitae diam blandit mattis.

    * Quisque non lorem sit amet felis rhoncus commodo.
    * Maecenas ullamcorper lacus vel lectus.
    * Suspendisse et elit ac sem rhoncus mattis.
    * Vestibulum cursus ultrices eros.
    * Vestibulum sollicitudin viverra diam.

    * Sed a enim vel augue convallis laoreet.
    * Praesent a nisl vitae magna bibendum mattis.
    * Etiam mollis arcu vel felis.
    * Pellentesque vehicula tincidunt felis.

    * Praesent sollicitudin lectus vel leo.
    * Quisque pulvinar pede ut ante.
    * Proin ut elit ut lectus pharetra commodo.
    * In condimentum ipsum vel lacus.
    * Vestibulum pretium tortor eget ligula.
    * Aenean scelerisque fringilla purus.

    * Maecenas sed quam sed lacus elementum bibendum.
    * Aliquam non turpis sit amet felis venenatis malesuada.
    * Cras volutpat felis vel arcu porta lacinia.
    * Integer pellentesque adipiscing eros.
    * Nullam placerat eros non elit.

    * Quisque sollicitudin mauris eget ante.
    * Nullam varius pulvinar sapien.
    * Phasellus at quam id dui placerat pulvinar.
    * Nunc auctor pharetra lacus.

    * Nam luctus metus ut ante.
    * Ut ac leo at lorem lacinia pulvinar.
    * Fusce in justo ac arcu egestas rutrum.
    * Curabitur ultrices imperdiet ligula.
    * Sed cursus leo a mi.
    * Proin feugiat facilisis mauris.
    * Duis posuere sollicitudin tellus.

    * Nullam vehicula pellentesque wisi.
    * In id elit ut felis commodo rhoncus.
    * Nulla elementum sagittis dolor.
    * Praesent egestas ipsum at wisi.
    * Nulla eu pede at est mollis sollicitudin.
    * Pellentesque luctus sagittis lectus.
    * Phasellus iaculis urna quis tortor.

    * Phasellus convallis ultricies libero.
    * Aenean a metus id metus blandit suscipit.
    * In cursus massa eu elit.
    * Nunc in neque non purus imperdiet iaculis.
    * Curabitur vestibulum molestie nibh.
    * Vestibulum eleifend tortor ac felis.
    * Aenean vehicula mi a velit.
    * Praesent in arcu a metus rutrum tristique.

    * Praesent gravida nisl sit amet quam.
    * Sed quis tortor vitae nisl auctor interdum.
    * Quisque ac felis eget ante accumsan pretium.

    * Curabitur a lorem et ante ornare viverra.
    * Cras porta urna quis turpis.
    * Aenean tristique nisl accumsan risus.
    * Sed porttitor nunc id elit.

    * Ut tincidunt ligula quis nisl.
    * Sed sed enim a ligula faucibus interdum.
    * Sed pharetra eleifend ipsum.
    * Praesent aliquam velit quis velit.
    * Aenean a sem non mi condimentum pharetra.
    * Cras tincidunt purus ut velit.
    * Phasellus tincidunt lectus vitae diam.

    * Nulla varius nunc a est.
    * Donec dignissim felis eu tellus.
    * Ut cursus lorem non diam.

    * Fusce sollicitudin ipsum id orci semper porta.
    * Nulla ultrices laoreet lacus.
    * Sed fringilla rutrum metus.
    * Quisque id sem vel mi vestibulum varius.
    * Sed laoreet nibh vitae lacus.

    * Vestibulum vel sapien eget enim tincidunt tempus.
    * Mauris molestie nisl vel wisi.
    * Donec accumsan dui eget magna.
    * Suspendisse ut elit in tellus viverra mattis.
    * Vivamus nec orci id sapien pulvinar ornare.
    * Curabitur id massa quis odio ultrices gravida.
    * Donec in tellus imperdiet massa tempor rutrum.

    * Phasellus fermentum posuere risus.
    * Sed nec sem convallis wisi posuere eleifend.
    * Cras vitae sapien eu quam tempor sollicitudin.
    * Mauris cursus malesuada orci.
    * Praesent consequat purus ut libero.
    * Vivamus tincidunt metus eget wisi.
    * Curabitur tincidunt facilisis urna.

    * Vivamus ac risus vitae turpis vestibulum fringilla.
    * Pellentesque dignissim nibh eget quam.
    * Nunc tincidunt dolor a leo.
    * Phasellus lacinia orci et tellus.

    * Pellentesque consectetuer lectus sed eros.
    * Sed tincidunt erat eu sapien.
    * Mauris sodales lacus et sem.
    * Aenean nonummy tempus nisl.
    * Donec eu mi quis leo interdum aliquam.
    * Sed nec dolor a metus condimentum pharetra.
    * Phasellus volutpat ultricies mauris.

    * Aliquam ac nulla porta nisl feugiat adipiscing.
    * Integer facilisis felis sed lorem.
    * Proin iaculis volutpat felis.
    * Suspendisse feugiat mauris vitae erat.
    * Aenean fringilla scelerisque wisi.

    * Nunc blandit facilisis neque.
    * Maecenas ultrices ornare justo.
    * Integer venenatis risus eget arcu.
    * Fusce viverra nibh nec orci.

    * Nam vitae wisi eu mauris elementum lobortis.
    * Aliquam ultricies dignissim magna.
    * Cras a leo ut est gravida vulputate.
    * Proin luctus sollicitudin wisi.
    * Praesent cursus risus eget nisl.
    * Curabitur sollicitudin bibendum ligula.

    * Etiam nonummy odio id ante hendrerit tincidunt.
    * Nulla dictum nulla in lectus.
    * Nam mattis leo porta nunc.
    * Curabitur ultricies nisl eu sapien.
    * Etiam ac arcu a neque tempor accumsan.
    * Aenean ornare faucibus lacus.

    * Cras congue quam eget quam.
    * Praesent vehicula magna gravida neque pretium sagittis.
    * Proin euismod fermentum elit.
    * Nunc ultrices risus ut tortor.
    * Nulla mollis orci vel purus.
    * Quisque id massa ac nunc tempus euismod.
    * Duis semper risus sit amet nulla.

    * Sed consequat mauris a erat.
    * Pellentesque consequat feugiat lectus.
    * Ut cursus elementum quam.
    * Sed varius tellus ac mauris.

    * Morbi pulvinar pretium neque.
    * Quisque molestie elementum arcu.
    * Suspendisse sodales pharetra massa.
    * Aliquam viverra iaculis ligula.
    * Duis non odio at eros vulputate fermentum.
    * Vivamus feugiat nisl eget leo.

    * Pellentesque dignissim mauris non justo.
    * Maecenas vitae urna ut wisi ultrices vestibulum.
    * Nulla consequat pede viverra pede.
    * Donec egestas consectetuer metus.
    * Praesent lobortis bibendum quam.

    * Morbi sollicitudin ligula sed lacus.
    * Aenean ut urna ut arcu suscipit imperdiet.
    * Praesent varius wisi quis tortor.
    * Duis sodales felis id neque.
    * Vestibulum sed augue at pede aliquam pellentesque.

    * Quisque dignissim leo et odio.
    * Integer et enim non est fringilla iaculis.
    * Vivamus at velit vitae urna scelerisque tristique.
    * Nullam pharetra fermentum wisi.
    * Etiam vel libero ac massa condimentum mattis.

    * Aliquam pellentesque erat eu sapien.
    * Pellentesque porttitor leo tincidunt elit.
    * Curabitur iaculis consequat felis.
    * Phasellus gravida ultricies leo.
    * Maecenas adipiscing eros sed ipsum.
    * Nullam id dolor nec dolor molestie posuere.

    * Proin dictum blandit diam.
    * Proin faucibus placerat lacus.
    * Mauris eget eros non enim fringilla ultricies.

    * Vestibulum fringilla tellus sit amet risus.
    * Proin bibendum placerat sapien.
    * Pellentesque pharetra nulla id dolor.
    * Mauris eget neque eget tellus laoreet aliquet.
    * Vivamus iaculis aliquam massa.
    * Mauris hendrerit vulputate orci.

    * Fusce nec felis vel libero vulputate tincidunt.
    * Vestibulum rutrum interdum odio.
    * Vestibulum tempus facilisis mauris.
    * Quisque quis diam a felis commodo nonummy.

    * Vivamus venenatis vestibulum libero.
    * Fusce sed metus sit amet libero condimentum auctor.
    * Suspendisse interdum sem nec justo.
    * Morbi aliquet dignissim sem.
    * Cras varius commodo sapien.
    * Proin dictum eleifend nisl.

    * Cras non enim eu est suscipit cursus.
    * In rhoncus placerat velit.
    * Mauris sagittis feugiat metus.
    * Maecenas eu nulla id lacus aliquet venenatis.
    * Sed interdum quam ac orci.
    * Pellentesque vulputate ornare libero.

    * Nullam hendrerit dolor vel urna.
    * Proin eleifend nibh a mauris.
    * In eget turpis at dui tempor adipiscing.
    * Duis quis velit vitae enim tempor iaculis.
    * Morbi congue purus eu diam.

    * Donec pretium consectetuer turpis.
    * Integer elementum augue vehicula massa.
    * Morbi semper orci at libero.
    * Praesent lacinia porta nunc.
    * Vestibulum consequat nulla quis arcu.
    * In elementum nisl eu dui.
    * Integer malesuada nibh cursus arcu venenatis dignissim.
    * Quisque at enim in mauris commodo ullamcorper.

    * Phasellus non mi non magna vehicula eleifend.
    * Vestibulum malesuada scelerisque nunc.
    * Curabitur at wisi nec urna elementum venenatis.
    * Cras tincidunt magna eget elit.
    * Phasellus mattis enim vitae orci.
    * Quisque luctus risus quis metus.
    * Nunc dignissim faucibus nunc.

    * Nullam id pede et lorem imperdiet malesuada.
    * Vestibulum imperdiet sem vel enim.
    * In eget ligula nec felis congue mollis.

    * Vivamus eget arcu id erat rhoncus convallis.
    * Aliquam varius dignissim neque.
    * Cras sed mi fermentum sem ullamcorper rutrum.
    * Fusce rutrum sollicitudin nunc.
    * Integer rhoncus nulla eu mauris.
    * Phasellus cursus molestie massa.

    * Pellentesque auctor est nec ipsum.
    * Sed ut lorem ut lectus imperdiet sollicitudin.
    * Sed sit amet wisi eget massa sagittis rhoncus.
    * Integer pulvinar blandit orci.

    * Etiam scelerisque posuere lacus.
    * Cras sodales neque congue libero.
    * Aliquam id magna vitae risus commodo pharetra.
    * In sit amet augue vitae leo sollicitudin laoreet.
    * Etiam nec orci ullamcorper eros vestibulum tempor.

    * Maecenas pulvinar tortor nec libero.
    * Ut quis tortor pharetra ligula malesuada scelerisque.
    * Phasellus aliquam venenatis neque.
    * Nunc pretium tortor in diam.

    * Cras a turpis id justo fermentum consectetuer.
    * Nulla viverra felis ut ligula.
    * Suspendisse adipiscing pharetra metus.
    * Sed pellentesque cursus lectus.
    * Maecenas laoreet feugiat turpis.

    * Maecenas accumsan metus vel purus.
    * Ut aliquam aliquam est.
    * Sed aliquet lorem adipiscing tortor.

    * Sed blandit malesuada eros.
    * Morbi iaculis ultricies risus.
    * Vivamus et purus a purus gravida tempus.

    * Sed molestie tortor aliquam quam.
    * Morbi vel purus et turpis varius adipiscing.
    * Etiam vel arcu nec metus sodales dapibus.
    * Etiam pulvinar pulvinar urna.

    * In sed wisi at urna commodo dignissim.
    * Suspendisse convallis purus sit amet turpis.
    * Nam bibendum sodales leo.
    * Proin ut nunc id sapien pellentesque aliquam.

    * Donec vitae odio sit amet enim eleifend tempus.
    * Nunc consectetuer pharetra tellus.
    * Nunc venenatis consectetuer dui.
    * Proin consectetuer cursus lacus.
    * Aliquam et erat vel ipsum lacinia auctor.
    * Nam fermentum velit vel wisi.

    * Integer ullamcorper neque viverra pede.
    * Maecenas a urna id sapien sagittis ultricies.
    * Phasellus et metus a magna imperdiet laoreet.
    * Quisque id nisl ac enim sollicitudin faucibus.
    * Vivamus tincidunt venenatis odio.
    * Etiam feugiat ipsum vitae velit.
    * Phasellus porta tellus id dolor.

    * Morbi in dolor ac lorem suscipit blandit.
    * Suspendisse sit amet lectus non pede rutrum dignissim.
    * Nullam pulvinar felis euismod tortor.
    * Curabitur commodo massa sed lacus.
    * Suspendisse in nunc laoreet enim pellentesque porttitor.
    * Nulla aliquam urna non lectus.

    * Integer non velit ut neque interdum rutrum.
    * Nullam ultrices tortor id velit.
    * Integer suscipit nulla non enim.


    * Proin semper aliquet tortor.
    * Etiam sed purus sed nunc posuere pretium.
    * Vivamus vitae justo vel orci cursus commodo.
    * Cras dapibus velit a mi.

    * Cras vehicula elit rhoncus tortor.
    * Aenean ultricies urna a augue.
    * Fusce egestas viverra augue.

    * Etiam et dolor a justo faucibus vestibulum.
    * Vestibulum mattis sem sit amet wisi.
    * Ut ac augue sit amet metus dignissim imperdiet.
    * Aenean ultricies adipiscing est.
    * Donec vitae est non diam tempus posuere.
    * Praesent lobortis placerat ante.

    * Pellentesque vestibulum pellentesque magna.
    * Suspendisse sed eros a risus nonummy convallis.
    * Cras tincidunt semper augue.

    * Suspendisse elementum tortor vel lorem.
    * Pellentesque luctus varius magna.
    * Aenean consequat purus quis est.
    * Vivamus at felis placerat leo semper pulvinar.
    * Mauris vulputate vehicula ligula.
    * Vestibulum hendrerit ornare purus.

    * Morbi egestas faucibus tellus.
    * Maecenas in pede eu pede interdum vestibulum.
    * Morbi blandit consectetuer leo.
    * Vivamus aliquam elementum ante.
    * Nullam pellentesque tellus a erat.
    * Nullam a diam et eros sollicitudin viverra.
    * Cras et eros vitae nibh vestibulum feugiat.
    * Nam in erat ut dui dapibus rhoncus.

    * Sed nonummy diam sit amet felis.
    * Integer pulvinar tincidunt ipsum.
    * Nullam eu nibh sed ligula vestibulum fringilla.
    * Nulla a turpis vel elit ornare fringilla.
    * Morbi in nibh sed urna laoreet lacinia.
    * Sed dictum lorem vitae arcu.
    * Integer sit amet metus nec libero sollicitudin condimentum.

    * Donec rhoncus nunc in libero.
    * Ut vel purus a dui sodales eleifend.
    * Praesent in mi et nunc dapibus euismod.
    * Mauris lobortis risus ac felis.

    * In tincidunt cursus mauris.
    * Phasellus pellentesque nisl non est.
    * Nulla condimentum lacus at leo.
    * Donec at pede vel libero posuere malesuada.
    * Maecenas mattis feugiat orci.
    * Curabitur sit amet odio id neque ullamcorper tristique.

    * Cras sagittis massa eu massa.
    * Nam tristique vestibulum pede.
    * Vestibulum at massa in pede vehicula rutrum.
    * Ut at arcu eget wisi scelerisque vestibulum.

    * Morbi viverra leo ut nunc.
    * Sed rutrum dui at dolor.
    * Quisque vel est sit amet est tempor ullamcorper.
    * Duis fermentum ipsum nec tellus.
    * Phasellus feugiat diam condimentum sem.

    * Morbi dapibus luctus sem.
    * Ut et lorem luctus lacus rhoncus viverra.
    * Curabitur a dolor ut libero eleifend ullamcorper.
    * Ut vitae nunc non ligula pellentesque luctus.
    * Nulla tempor lobortis turpis.
    * Nam at ligula in leo sagittis facilisis.

    * Cras aliquet tempus odio.
    * Sed sit amet magna ut dui dapibus sollicitudin.
    * Morbi blandit porttitor risus.

    * Suspendisse rutrum lectus eget dui.
    * Sed vel lorem sed tellus viverra consectetuer.
    * Duis quis lacus eu nulla pulvinar auctor.
    * Aenean blandit sem vitae arcu.
    * Maecenas egestas dui et velit.
    * Morbi nec erat vitae libero vestibulum porttitor.
    * Fusce placerat ipsum eu enim.
    * Donec id purus ac elit condimentum scelerisque.

    * Donec euismod lectus dictum arcu.
    * Vestibulum eleifend vulputate quam.
    * Mauris fermentum tortor ac dolor.
    * Pellentesque rutrum sem vitae erat.

    * Vestibulum euismod enim ut diam.
    * Aenean bibendum mollis tortor.
    * Vestibulum congue pede quis nunc.
    * Vestibulum rutrum consectetuer pede.
    * Morbi at eros ac augue vulputate suscipit.

    * Nam feugiat porta massa.
    * Nam iaculis eleifend sem.
    * Mauris mattis velit quis dui.
    * Nam sed ante in nulla porttitor molestie.
    * Curabitur scelerisque massa nec libero.
    * In luctus porttitor risus.
    * Nullam sodales quam sed elit.
    * Curabitur pellentesque enim eu nulla.

    * Aliquam iaculis aliquet sem.
    * Aenean porta suscipit ligula.
    * Donec mollis velit imperdiet lacus.

    * Praesent vulputate convallis diam.
    * Cras faucibus tellus scelerisque ipsum.
    * Cras eget nulla eu est rhoncus placerat.
    * Aenean ut urna a purus nonummy scelerisque.
    * Vestibulum pulvinar condimentum lacus.
    * Curabitur egestas lorem eu est vestibulum vestibulum.
    * Ut ut justo id pede accumsan gravida.
    * Curabitur facilisis quam quis nibh.

    * Curabitur eu justo ut pede feugiat vestibulum.
    * Sed lacinia varius eros.
    * Aliquam ac sem sit amet eros fermentum hendrerit.
    * Mauris tristique pellentesque nulla.
    * Suspendisse id pede id sapien mattis volutpat.
    * Phasellus at quam non lacus viverra blandit.
    * Donec tristique tristique neque.

    * Sed eu sem sagittis enim ullamcorper eleifend.
    * Donec porttitor augue nec mauris.
    * Suspendisse porttitor wisi molestie neque.
    * Vivamus aliquam metus id sapien.
    * Phasellus sodales neque eget ipsum.
    * Curabitur non nunc quis ipsum placerat scelerisque.
    * Donec congue metus vitae libero.
    * Pellentesque eget purus vitae purus euismod tincidunt.

    * Donec pretium aliquam turpis.
    * Maecenas volutpat pulvinar mi.
    * Praesent luctus convallis justo.
    * Proin blandit augue eu urna.
    * Pellentesque nec magna id lorem convallis porttitor.

    * Curabitur vulputate ligula nec ipsum.
    * Curabitur laoreet mauris non urna.
    * Aenean non quam non eros dictum vulputate.
    * Donec pretium massa et velit.
    * Nulla et wisi ut nibh fermentum auctor.
    * Phasellus ut tellus eget sem mollis ultricies.
    * Vestibulum iaculis velit a mauris.

    * Aliquam auctor porta dui.
    * Nulla dapibus felis eu mauris suscipit malesuada.
    * Duis tempus velit et purus.
    * Praesent rhoncus sem a tortor.
    * Ut malesuada velit egestas magna.
    * Nam varius nunc sit amet sapien posuere vestibulum.
    * Nunc non leo eget orci porta sagittis.

    * Praesent suscipit diam ut eros.
    * Integer consectetuer adipiscing felis.
    * Quisque imperdiet ultricies tellus.
    * Pellentesque consequat nibh vel est.
    * In suscipit commodo urna.

    * Pellentesque pharetra risus ac arcu.
    * Aliquam feugiat vehicula risus.
    * Vivamus dictum lacus eget enim.
    * Aenean interdum libero et leo.
    * Vestibulum consectetuer vestibulum eros.
    * Vivamus ultrices eleifend orci.

    * Nullam vel urna eget velit dictum dignissim.
    * Quisque mollis euismod enim.
    * Sed vestibulum tellus eu velit.
    * Duis id odio in wisi dapibus dignissim.
    * Maecenas cursus lacinia augue.

    * Vestibulum placerat sagittis est.
    * Sed ac est vel diam ullamcorper blandit.
    * In mattis turpis sit amet ante.
    * Curabitur commodo aliquam lacus.
    * Ut congue tincidunt erat.
    * Vestibulum dignissim semper eros.
    * Suspendisse et sem sed lacus feugiat luctus.

    * Sed at velit quis massa hendrerit viverra.
    * Donec sodales ipsum eu libero.
    * Vivamus suscipit porttitor wisi.
    * Aenean quis ligula nec augue egestas nonummy.

    * Nullam molestie sapien vel turpis laoreet vulputate.
    * Praesent nec lectus non elit blandit volutpat.
    * Phasellus molestie condimentum tortor.
    * Integer in urna vel arcu viverra consectetuer.
    * Nunc sed risus sed nunc ultrices tincidunt.

    * Cras euismod iaculis metus.
    * Ut a nisl a libero iaculis accumsan.
    * Pellentesque vestibulum molestie risus.

    * Vestibulum sollicitudin odio nec enim.
    * Donec lacinia ipsum in arcu.
    * Phasellus sagittis arcu sit amet odio.
    * Aenean vestibulum purus nec sem.
    * Aenean elementum purus vitae erat.
    * Maecenas pellentesque fringilla enim.
    * In imperdiet ante bibendum sapien.

    * Praesent dignissim venenatis sem.
    * Maecenas hendrerit venenatis sem.
    * Curabitur placerat pede eu mi.

    * Donec suscipit auctor libero.
    * Nulla ac tortor ac mauris lacinia lacinia.
    * Fusce cursus augue id magna.

    * Curabitur sed nisl facilisis metus tristique porta.
    * Morbi vehicula consectetuer nulla.
    * Integer luctus ante sit amet nunc.
    * Donec lacinia molestie tortor.

    * Sed molestie ipsum at ipsum.
    * Etiam gravida nunc consectetuer arcu.
    * Duis luctus massa in quam.
    * Vestibulum rhoncus enim et justo.
    * Integer euismod malesuada nunc.
    * Quisque ultricies lacinia ante.
    * Curabitur a arcu eu leo ornare mollis.

    * Fusce id justo non elit nonummy lobortis.
    * Nullam sagittis accumsan neque.
    * Phasellus vel tortor in tellus posuere pellentesque.
    * Aenean malesuada purus et eros.
    * Donec vulputate augue vel mauris.
    * Curabitur consequat dui in turpis.
    * Quisque mollis tellus non felis.

    * Nunc luctus nulla ac dui.
    * Donec quis ante at mi vestibulum varius.
    * Aenean consequat varius urna.
    * Integer ullamcorper varius leo.
    * Nam aliquam dui vel justo.
    * Cras nec ipsum ut arcu convallis rhoncus.
    * Aliquam rhoncus aliquam ligula.
    * Sed auctor hendrerit dolor.

    * Morbi sit amet dolor a ligula posuere egestas.
    * Curabitur ac tellus at justo pharetra elementum.
    * Duis suscipit mollis nunc.

    * Morbi eleifend molestie neque.
    * Duis quis odio a tellus ultricies consectetuer.
    * Phasellus gravida pretium arcu.
    * Vivamus nonummy risus a urna.
    * Suspendisse adipiscing blandit sapien.
    * Duis ornare nisl et nulla.

    * Sed eu nunc ut lacus adipiscing sodales.
    * Proin mollis pede nec wisi.
    * Proin cursus bibendum wisi.
    * Sed aliquet quam viverra est.
    * Nulla euismod aliquam quam.
    * Vestibulum ultrices risus nec nisl.
    * Phasellus lacinia fringilla metus.

    * Duis quis augue vel tortor pulvinar euismod.
    * Nulla id wisi et massa viverra congue.
    * Cras et dolor id quam molestie pulvinar.
    * Duis ornare sapien id magna.
    * Donec in pede fringilla ligula facilisis tincidunt.
    * Integer euismod turpis imperdiet orci.

    * Proin dictum nulla ac elit.
    * Mauris sagittis libero sed quam.
    * Mauris ac wisi eu urna egestas malesuada.
    * Cras ut neque eu libero consequat molestie.
    * Duis vestibulum faucibus ante.

    * Integer quis nulla ac urna lobortis lacinia.
    * Maecenas in sapien quis nunc euismod lacinia.
    * Mauris et nisl vitae dui porta dignissim.
    * Nam ut nisl at risus placerat imperdiet.
    * Sed lobortis sapien vitae diam.

    * Sed dignissim feugiat urna.
    * Sed cursus turpis tincidunt risus.
    * Aliquam molestie est aliquam neque.
    * Quisque rhoncus vehicula elit.

    * Morbi iaculis nibh vitae augue.
    * Vivamus at libero vitae pede ultrices eleifend.
    * Morbi iaculis hendrerit sapien.
    * Etiam luctus consequat elit.
    * Sed non neque vel eros feugiat ullamcorper.
    * In accumsan commodo sem.
    * Pellentesque hendrerit mi non mauris.

    * Sed imperdiet iaculis elit.
    * Etiam a arcu vitae orci accumsan viverra.
    * Aliquam laoreet ligula sed nulla.
    * Quisque suscipit placerat leo.
    * Aliquam eu metus vitae eros ullamcorper pulvinar.

    * In nec nisl eu justo ornare ullamcorper.
    * Nulla egestas est at arcu.
    * Quisque eget urna nec eros posuere placerat.
    * Vestibulum in enim eget purus cursus consequat.

    * Donec ornare enim lacinia orci.
    * Fusce eleifend condimentum justo.
    * In sit amet erat sit amet quam malesuada pharetra.
    * Donec pharetra viverra sem.

    * Ut ac felis et nibh rutrum rutrum.
    * Curabitur at nulla eget sapien accumsan interdum.
    * Praesent vitae wisi vel mauris tempus ornare.
    * Curabitur facilisis sagittis wisi.
    * Maecenas nec sapien vel leo consequat convallis.

    * Ut nonummy velit eget ipsum.
    * Mauris ultrices hendrerit sapien.
    * Proin convallis facilisis ante.
    * Nunc a eros bibendum quam volutpat porttitor.
    * Donec condimentum ante eget arcu.
    * Integer vitae wisi eu ante molestie euismod.
    * Quisque interdum justo eu risus.

    * Pellentesque ac urna sit amet sapien suscipit fermentum.
    * Duis blandit purus et orci.
    * Nullam malesuada suscipit odio.
    * Etiam imperdiet lectus at magna.

    * Donec bibendum ipsum pharetra sem.
    * Aliquam consectetuer tempus wisi.
    * Nunc venenatis dui vitae dolor.
    * Maecenas nec diam sed tellus ultricies congue.
    * Vivamus dapibus condimentum massa.
    * Aliquam euismod semper pede.

    * Sed quis dui sit amet magna ultrices tincidunt.
    * Quisque tincidunt sagittis nibh.
    * Fusce sed pede ut libero consectetuer tincidunt.

    * Quisque tincidunt elementum wisi.
    * Sed feugiat viverra libero.
    * Nam facilisis ultrices massa.
    * Nunc pretium velit at turpis dictum facilisis.
    * Curabitur volutpat lorem sed wisi.
    * Curabitur tristique urna et diam.
    * Nullam fermentum dignissim urna.
    * Nam eget erat eget lectus facilisis tincidunt.

    * Vivamus id justo id magna pharetra pellentesque.
    * Cras imperdiet mi eget dui.
    * Sed ac est non lectus convallis feugiat.
    * Donec gravida tincidunt neque.
    * Vestibulum malesuada eleifend sem.

    * Aliquam vel dolor cursus felis aliquet dictum.
    * Aliquam non sapien at enim cursus congue.
    * Sed quis lorem ut augue pharetra consequat.
    * Vestibulum rhoncus vulputate mi.
    * Curabitur varius egestas elit.
    * Sed pulvinar dolor non lectus.
    * In tincidunt pede sit amet libero.

    * Sed adipiscing aliquet mi.
    * Sed mattis luctus metus.
    * Proin porttitor ligula a felis.
    * Mauris vel purus sit amet dolor laoreet sollicitudin.
    * Integer tempus interdum tortor.

    * Duis porta leo sit amet sem mattis convallis.
    * Ut a augue a enim congue convallis.
    * Fusce rutrum sem ut nibh.
    * Ut mattis nunc a enim.
    * Suspendisse vestibulum lorem ut pede.
    * Integer scelerisque tristique nunc.
    * Fusce pretium nibh sed augue.

    * Sed facilisis nonummy quam.
    * In semper dolor sit amet urna.
    * Integer eu urna nec dui viverra convallis.
    * Cras consequat feugiat magna.
    * Donec rutrum diam at nulla viverra adipiscing.

    * Vestibulum eu quam et massa fringilla venenatis.
    * Nullam et arcu vel sapien mollis ultrices.
    * Curabitur iaculis quam a wisi.
    * Aliquam tempor lectus eu mi.
    * Nullam faucibus quam et nunc.


*EDIT*
it takes 700ms when run from the IDE using print, it takes 260ms when run from the command prompt.

slightly different test:
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)

Tried your code and 104341 lines took around 102 seconds. My CPU is a good part slower then yours, so at least i know there isnt something wrong with my PC or that BMax behaves different here.
Thank you.

But 102 seconds? 10 Files like that and you got a 17 minutes loading screen;-)
BlitzEditor needs around 1 second to read and print that file...

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



But 102 seconds? 10 Files like that and you got a 17 minutes loading screen;-)

You wouldn't normally print the value of each vertice to the screen though would you?

It takes 123ms when not writing the values out (this includes conversion from string to float), so 10 files would take 1 second to load like that (on my PC).

You would probably be better converting the files to a binary format then reading them with ReadFloat.

6ms at command prompt when reading floats vs 123ms with strings
'''''''''''''''''
' USING STRINGS '
'''''''''''''''''

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

Local floatStream:TStream = WriteStream("c:\testfloat.bin")

start=MilliSecs()

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

Wend

Print "Time taken: " + (MilliSecs()-start) + "ms when reading strings"
CloseStream(floatStream)
CloseStream(bankStream)






''''''''''''''''
' USING FLOATS '
''''''''''''''''


Local fFileStream:TStream = ReadStream("c:\testfloat.bin")', True, False)
Local fmyBank:TBank = New TBank
Local fbankStream:TBankStream = CreateBankStream(fmyBank)

CopyStream(ffileStream, fbankStream, StreamSize(ffileStream))
CloseStream(ffileStream)
SeekStream(fBankStream, 0)
Local fCoord:T3DCoord = New T3DCoord

'Local floatStream:TStream = WriteStream("c:\testfloat.bin")

start=MilliSecs()

While Not Eof(fbankStream)
	fCoord.X = ReadFloat(fBankStream)
	fCoord.Y = ReadFloat(fBankStream)
	fCoord.Z = ReadFloat(fBankStream)
	'Print coord.X+", "+coord.Y+", "+coord.Z
	FlushMem

Wend

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

CloseStream(fbankStream)

















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



Great, thnx to your code i found it.
It was a missing "Flushmem" in the readline() loop.
Now speed is fine.

But what data releases Flushmem here?
Does every Readline command create a copy of the already red file which should be then released?

Think i nearly understand what Flushmem does, but
its a little hard to use if you need to understand how an other command exactly works.

Take a look here for a decent explanation of Flushmem (take special notice of the NOTE: section).

Glad i am asked here..didnt know Flushmem has local scope.
Thnx:-)


Local file=OpenFile(GeoDatpath$)
While Not Eof(file)
LineofData$=ReadLine(file)
Wend
CloseStream File



Each time the Readline command is executed, it reads a line from your datafile, puts that line in a string-object and assigns the pointer of that string-object (it's memory-address) to the variable LineofData$, overwriting the previous memory-location.

So eventually you'll end up using megabytes of memory, because BMax creates a new string each loop, without deleting/overwriting the old one.
The previous line still exists in memory, but the LineofData$ variable is pointing to the new string, leaving the old one in memory, without a reference to it.

That's why FlushMem fixes it, it deletes any object (including string-objects) that doesn't have a reference to it.

Hope this all makes sense (and that it is correct).

I think he got it already. :)

Just trying to help, as he stated that he "nearly" understands what FlushMem does.

Other poeple will read it too and will find it helpfull.
Thnx to both;-)