dlangui.core.linestream
This module contains text file reader implementation.Support utf8, utf16, utf32 be and le encodings, and line endings - according to D language source file specification.
Low resource consuming. Doesn't flood with GC allocations. Dup line if you want to store it somewhere.
Tracks line number.
Synopsis:
import dlangui.core.linestream; import std.stdio; import std.conv; import std.utf; string fname = "somefile.d"; writeln("opening file"); std.stream.File f = new std.stream.File(fname); scope(exit) { f.close(); } try { LineStream lines = LineStream.create(f, fname); for (;;) { dchar[] s = lines.readLine(); if (s is null) break; writeln("line " ~ to!string(lines.line()) ~ ":" ~ toUTF8(s)); } if (lines.errorCode != 0) { writeln("Error ", lines.errorCode, " ", lines.errorMessage, " -- at line ", lines.errorLine, " position ", lines.errorPos); } else { writeln("EOF reached"); } } catch (Exception e) { writeln("Exception " ~ e.toString); }
License:
Boost License 1.0
Authors:
Vadim Lopatin, coolreader.org@gmail.com