Split range that has no length or slice?
Spacen Jasset via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Nov 9 06:44:37 PST 2015
I can't seem to find a way of splitting a range of characters
into lines unless the range has a length or can be sliced? This
presumably is because i is a range of chunks, which cannot have a
length or a slice. I do not see how to get anything else from the
File object at the moment.
import std.stdio;
import std.string;
void printFile(Range)(Range i)
{
foreach (l; lineSplitter(i)) {
writefln("%d\n", l);
}
}
auto range(File f)
{
const size_t someArbitrary = 4096;
return f.byChunk(someArbitrary);
}
void main()
{
File f = File("/etc/passwd");
printFile(f.range());
// std.string.lineSplitter(Flag keepTerm = KeepTerminator.no,
Range)(Range r) if (hasSlicing!Range && hasLength!Range ||
isSomeString!Range)
// test.d(21): Error: template instance
test.printFile!(ByChunk) error instantiating
}
More information about the Digitalmars-d-learn
mailing list