For fun: Expressive C++ 17 Coding Challenge in D
Christian Köstlin
christian.koestlin at gmail.com
Sun Oct 15 21:21:58 UTC 2017
Another solution using dlangs builtin csv support for reading.
import std.csv;
import std.file;
import std.algorithm : map;
import std.range;
string csvWrite(Header, Rows)(Header header, Rows rows)
{
return header.join(",") ~ "\n" ~ rows.map!(r => header.map!(h =>
r[h]).join(",")).join("\n");
}
int main(string[] args)
{
auto inputFile = args[1];
auto columnName = args[2];
auto replacement = args[3];
auto outputFile = args[4];
auto records = readText(inputFile).csvReader!(string[string])(null);
write(outputFile, csvWrite(records.header, records.map!((r) {
r[columnName] = replacement;
return r;
})));
return 0;
}
Unfortunately this is still far from the powershell solution :/
cK
More information about the Digitalmars-d-learn
mailing list