On Thursday, 3 August 2017 at 08:47:12 UTC, Martin Tschierschke
wrote:
On Wednesday, 2 August 2017 at 22:02:49 UTC, Vladimir Panteleev
wrote:
On Wednesday, 2 August 2017 at 21:59:23 UTC, Vladimir
Panteleev wrote:
Good idea! But I think it needs more ranges:
The format call can be substituted with writefln directly:
void main(string[] args)
{
import std.algorithm, std.format, std.stdio;
enum cols = 16;
args[1].File("rb").byChunk(16).each!(chunk =>
writefln!"%(%02X %)%*s %s"(
chunk,
3 * (cols - chunk.length), "",
chunk.map!(c =>
c < 0x20 || c > 0x7E ? '.' : char(c))));
}
Very cool!
Now you can remove: std.format,
and I would substitute: byChunk(16) with byChunk(col)
Error should be cols: byChunk(cols)
Can you point me to the explanation of this: %(%02X %)%*s %s ?
Ah I found it myself:
https://dlang.org/library/std/format/formatted_write.html
The %( %) called "nested array formatting" was new for me.