On Friday, 21 January 2022 at 02:30:35 UTC, Ali Çehreli wrote:
The bigger question is, why did 'formattedRecords' exist at
all? You could have written the output directly to the file.
Oh. this was intentional, as I wanted to write once, and only
once, to the file.
The consequence of that decision of course, is the extra memory
allocations...
But in my example code I only create 10 records. In reality, my
dataset will have 100,000's of records, so I don't want to write
100,000s of time to the same file.
But even *worse* and with apologies, ;) here is something crazy
that achieves the same thing:
void ProcessRecords
(in int[][int][] recArray, const(string) fname)
{
import std.algorithm : joiner;
auto toWrite = recArray.map!(e => e.byPair);
File("rnd_records.txt",
"w").writefln!"%(%(%(%s,%(%s,%)%)%)\n%)"(toWrite);
}
I've done lot's of trial and error for the required number of
nested %( %) pairs. Phew...
Ali
Yes, that does look worse ;-)
But I'm looking into that code to see if I can salvage something
from it ;-)