Reading files using delimiters/terminators

Rekel paultjeadriaanse at gmail.com
Sun Dec 27 23:12:46 UTC 2020


On Sunday, 27 December 2020 at 13:27:49 UTC, oddp wrote:
> foreach (group; readText("input").splitter("\n\n")) { ... }

> Also, on other days, when the input is more uniform, there's 
> always https://dlang.org/library/std/file/slurp.html which 
> makes reading it in even easier, e.g. day02:
>
> alias Record = Tuple!(int, "low", int, "high", char, "needle", 
> string, "hay");
> auto input = slurp!Record("input", "%d-%d %s: %s");
>
> P.S.: would've loved to have had multiwayIntersection in the 
> stdlib for day06 part2, especially when there's already 
> multiwayUnion in setops. fold!setIntersection felt a bit clunky.

Oh my, all these things are new to me, haha, thanks a lot! I'll 
be looking into those (slurp & tuple). By the way, is there a 
reason to use either 'splitter' or 'split'? I'm not sure I see 
why the difference would matter in the end.

Sidetangent, don't mean to bash the learning tour, as it's been 
really useful for getting started, but I'm surprised stuff like 
tuples and files arent mentioned there.
Especially since the documentation tends to trip me up, with 
stuff like 'isSomeString' mentioning 'built in string types', 
while I haven't been able to find that concept elsewhere, let 
alone functionality one can expect in this case (like .length and 
the like), and stuff like 'countUntil' not being called 
'indexOf', although it also exists and does basically the same 
thing. Also assumeUnique seems to be a thing?


More information about the Digitalmars-d-learn mailing list