On Monday, 8 August 2016 at 07:09:55 UTC, torea wrote:
On Monday, 8 August 2016 at 05:17:24 UTC, Dave Akers wrote:
I do believe your problem is with the line...
On Monday, 8 August 2016 at 02:44:20 UTC, torea wrote:
string cleanLine = strip( cast(string)line );
It's casting a char[] to and immutable(char)[], causing the
mutable buffer from byLine to be used as a string. what you
want is...
string cleanLine = strip( to!string(line) );
which should make a copy of the mutable buffer.
I still a beginner at D but I think that will fix your problem.
-Dave
Problem fixed!!
Thank you very much for the solution and the explanation!
You should always carefully read the description and Notes ;-)
Note:
Each front will not persist after popFront is called, so the
caller must copy its contents (e.g. by calling to!string) when
retention is needed. If the caller needs to retain a copy of
every line, use the byLineCopy function instead.
http://dlang.org/phobos/std_stdio.html#.File.byLine
Unfortunately you are not the first one who bumped into this
problem and this non intuitive behavior of byLine is heavily
disputed.