digitalmars.D.learn - Remove all blank lines from a file
- vino (5/5) Aug 31 2017 Hi All,
- Stefan Koch (14/19) Aug 31 2017 ubyte[] fileData;
- Anonymouse (21/26) Aug 31 2017 Super verbose, but:
- Rene Zwanenburg (18/23) Aug 31 2017 This one doesn't read the entire file into memory:
- vino (6/31) Aug 31 2017 Hi All,
Hi All, Can some provide me a example of how to remove all blank lines from a file. From, Vino.B
Aug 31 2017
On Thursday, 31 August 2017 at 14:44:07 UTC, vino wrote:Hi All, Can some provide me a example of how to remove all blank lines from a file. From, Vino.Bubyte[] fileData; ubyte[] writeThis; uint lastP; fileData = readRaw(fileName); foreach(uint p; ubyte b;fileData) { if (b == '\n') { writeThis ~= fileData[lastP .. p]; lastP = p; } } write(fileName, fileData);
Aug 31 2017
On Thursday, 31 August 2017 at 14:44:07 UTC, vino wrote:Hi All, Can some provide me a example of how to remove all blank lines from a file. From, Vino.BSuper verbose, but: import std.stdio; import std.file; import std.algorithm.iteration; enum inFilename = "in.txt"; enum outFilename = "out.txt"; void main() { immutable lines = readText(inFilename); char[] outbuffer; outbuffer.reserve(lines.length); foreach (line; lines.splitter("\n")) { if (!line.length) continue; outbuffer ~= line; outbuffer ~= "\n"; } auto outfile = File(outFilename, "w"); outfile.write(outbuffer); }
Aug 31 2017
On Thursday, 31 August 2017 at 14:44:07 UTC, vino wrote:Hi All, Can some provide me a example of how to remove all blank lines from a file. From, Vino.BThis one doesn't read the entire file into memory: import std.stdio; import std.array; import std.algorithm; import std.uni; void main(string[] args) { auto inputFile = File(args[1]); auto outputFile = File(args[2], "wb"); inputFile .byLine .filter!(line => !line.all!isWhite) .copy(outputFile.lockingTextWriter); } But if you want to replace the input file, you'd have to write to a temp file, remove the original, then move the temp file.
Aug 31 2017
On Thursday, 31 August 2017 at 15:48:31 UTC, Rene Zwanenburg wrote:On Thursday, 31 August 2017 at 14:44:07 UTC, vino wrote:Hi All, Thank you very much, was able to resolve the issue. From, Vino.BHi All, Can some provide me a example of how to remove all blank lines from a file. From, Vino.BThis one doesn't read the entire file into memory: import std.stdio; import std.array; import std.algorithm; import std.uni; void main(string[] args) { auto inputFile = File(args[1]); auto outputFile = File(args[2], "wb"); inputFile .byLine .filter!(line => !line.all!isWhite) .copy(outputFile.lockingTextWriter); } But if you want to replace the input file, you'd have to write to a temp file, remove the original, then move the temp file.
Aug 31 2017