<div dir="ltr">using <a href="http://dlang.org/phobos/std_utf.html#byCodeUnit">http://dlang.org/phobos/std_utf.html#byCodeUnit</a> could help</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 2, 2017 at 2:59 PM, Martin Drašar via Digitalmars-d-learn <span dir="ltr"><<a href="mailto:digitalmars-d-learn@puremagic.com" target="_blank">digitalmars-d-learn@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dne 2.8.2017 v 14:45 Steven Schveighoffer via Digitalmars-d-learn napsal(a):<br>
<span class=""><br>
> The problem is that you are 2 ranges deep when you apply splitter. The<br>
> result of the map is a range of ranges.<br>
><br>
> Then when you apply stringStripleft, you are applying to the map result,<br>
> not the splitter result.<br>
><br>
> What you need is to bury the action on each string into the map:<br>
><br>
> .map!(a => a.splitter(",").map!(<wbr>stringStripLeft).join(","))<br>
><br>
> The internal map is because stripLeft doesn't take a range of strings<br>
> (the result of splitter), it takes a range of dchar (which is each<br>
> element of splitter). So you use map to apply the function to every<br>
> element.<br>
><br>
> Disclaimer: I haven't tested to see this works, but I think it should.<br>
><br>
> Note that I have forwarded your call to join, even though this actually<br>
> is not lazy, it builds a string out of it (and actually probably a<br>
> dstring). Use joiner to do it truly lazily.<br>
><br>
> I will also note that the result is not going to look like what you<br>
> think, as outputting a range looks like this: [element, element,<br>
> element, ...]<br>
><br>
> You could potentially output like this:<br>
><br>
> output.write(result.joiner("\<wbr>n"));<br>
><br>
> Which I think will work. Again, no testing.<br>
><br>
> I wouldn't expect good performance from this, as there is auto-decoding<br>
> all over the place.<br>
><br>
> -Steve<br>
<br>
</span>Thanks Steven for the explanation. Just to clarify - what would be<br>
needed to avoid auto-decoding in this case? Process it all as an arrays,<br>
using byChunk to read it, etc?<br>
<br>
@kdevel: Thank you for your solution as well.<br>
<span class="HOEnZb"><font color="#888888"><br>
Martin<br>
</font></span></blockquote></div><br></div>