On Wednesday, 21 January 2015 at 12:10:20 UTC, Nordlöw wrote:
On Wednesday, 21 January 2015 at 12:00:47 UTC, Nordlöw wrote:
My executable throws as

   core.exception.InvalidMemoryOperationError@(0)

I've tracked it down to being caused by

    foreach (line; File(path).byLine) {}

when path contains a very large text file (392 MB, 1658080 lines).

Do I have any alternatives to this that doesn't trigger exception?

I get the exact same behaviour when I try using MmFile instead:

    import std.mmfile: MmFile;
auto mmf = new MmFile(path, MmFile.Mode.read, 0, null, pageSize);
    const data = cast(char[])mmf[];
    foreach (line; data.splitter('\n') {}

Does byLine use splitter? If so, maybe splitter is the problem...

Reply via email to