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++;
}
---
  • file io hridyansh thakur via Digitalmars-d-learn
    • Re: file io Arun Chandrasekaran via Digitalmars-d-learn
      • Re: file io rikki cattermole via Digitalmars-d-learn
        • Re: file io Steven Schveighoffer via Digitalmars-d-learn
          • Re: file io Steven Schveighoffer via Digitalmars-d-learn

Reply via email to