Phobos packages a bit confusing

Denis Koroskin 2korden at gmail.com
Mon Nov 30 07:45:15 PST 2009


On Mon, 30 Nov 2009 18:25:41 +0300, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> wrote:

> retard wrote:
>> Mon, 30 Nov 2009 12:01:22 +0100, Ary Borenszweig wrote:
>>
>>> KennyTM~ wrote:
>>>>>> By
>>>>>> far the two most important pieces of I/O functionality I need are:
>>>>>>
>>>>>> 1.  Read a text file line-by-line.
>>>>> foreach (line; new Lines!(char) (new File ("foobar.txt")))
>>>>>    Cout (line).newline;
>>>>> }
>>>>>
>>>>>
>>>> yuck.
>>> Yuck?? I find that code very elegant. How would you like it to be?
>>  I guess something like this:
>>  JustDoItWith("foobar.txt") {
>>   ...
>> }
>
> foreach (char[] line; File("text.txt").byLine()) {
>     ...
> }
>
> Efficient, flexible, convenient. Closes automatically the file, too,  
> which Tango seems doesn't.
>
>
> Andrei

If it closes file automatically, then why do you close it explicitly in  
slurp?

The code is almost the same except that "Lines" class works with any Input  
Stream (memory stream, file stream, network stream, pipe, i/o device etc).



More information about the Digitalmars-d mailing list