On 12/26/20 4:13 PM, Rekel wrote:
I'm trying to read a file with entries seperated by '\n\n' (empty line), with entries containing '\n'. I thought the File.readLine(KeepTerminator, Terminator) might work, as it seems to accept strings as terminators, since there seems to have been a thread regarding '\r\n' seperators.

I don't know if there's some underlying reason, but when I try to use "\n\n" as a terminator, I end up getting the entire file into 1 char[], so it's not delimited.

Should this work or is there a reason one cannot use byLine like this?

For context, I'm trying this with the puzzle input of day 6 of this year's advent of code. (https://adventofcode.com/)

byLine should work:

import std.stdio;

void main() {
  auto f = File("deneme.d");

  // Warning: byLine reuses an internal buffer. Call byLineCopy
  // if potentially parsed strings into the line need to persist.
  foreach (line; f.byLine) {
    if (line.length == 0) {
      writeln("EMPTY LINE");

    } else {
      writeln(line);
    }
  }
}

Ali

Reply via email to