Andrei Alexandrescu wrote: > Daniel Keep wrote: >> >> Andrei Alexandrescu wrote: >>> ... >>> >>> Right now readln preserves the separator. The newer File.byLine >>> eliminates it by default and offers to keep it by calling >>> File.byLine(KeepTerminator.yes). The allowed terminators are one >>> character or a string. See >>> >>> http://erdani.dreamhosters.com/d/web/phobos/std_stdio.html#byLine >>> >>> I consider such an API adequate but insufficient; we need to add to it. >>> >>> >>> Andrei >> >> Why not: >> >> char[] line, sep; >> line = File.byLine(); // discard sep >> line = File.byLine(sep); // pass sep out >> >> The separator is likely to be more useful once extracted. > > And how about when sep is elaborate (e.g. regex)? > > Andrei
Whatever was matched. If we have a file containing: "A.B,C" And we split lines using /[.,]/, then this: > char[] line, sep; > line = File.byLine(sep); > while( line != "" ) > { > writefln(`line = "%s", sep = "%s"`, line, sep); > line = File.byLine(sep); > } Would output this: > line = "A", sep = "." > line = "B", sep = "," > line = "C", sep = "" -- Daniel