file io
rikki cattermole
rikki at cattermole.co.nz
Thu Sep 6 17:07:05 UTC 2018
On 07/09/2018 4:17 AM, Arun Chandrasekaran wrote:
> On Thursday, 6 September 2018 at 16:13:42 UTC, hridyansh thakur wrote:
>> how to read a file line by line in D
>
> std.stdio.File.byLine()
>
> Refer the doc here: https://dlang.org/library/std/stdio/file.by_line.html
>
> An example from the doc:
>
> ```
> import std.algorithm, std.stdio, std.string;
> // Count words in a file using ranges.
> void main()
> {
> auto file = File("file.txt"); // Open for reading
> const wordCount = file.byLine() // Read lines
> .map!split // Split into words
> .map!(a => a.length) // Count words per line
> .sum(); // Total word count
> writeln(wordCount);
> }
> ```
Ranges will be far too advanced of a topic to bring up at this stage.
So something a little more conventional might be a better option:
---
import std.file : readText;
import std.array : split;
import std.string : strip;
string text = readText("file.txt");
string[] onlyWords = text.split(" ");
uint countWords;
foreach(ref word; onlyWords) {
word = word.strip();
if (word.length > 0)
countWords++;
}
---
More information about the Digitalmars-d-learn
mailing list