On 06/04/2014 05:05 PM, Robert Hathaway wrote:
I've got a program that reads a text file line by line (using std.stdio readln())
Consider using byLine() instead. (Important: byLine uses an internal buffer for the line; so, don't forget to make a copy if you want to store the line for later use.)
> and I'd like to refer to the line number when I send a message
to stderr upon finding a mis-formatted line. Is there a way to get the current line number? Of course, I could create a counter and increment it with each call to readln, but is there a "cool" way of doing this? Okay, call me lazy... just don't call me late for dinner! :-) Robert
One cool way is a zipped sequence: import std.stdio; import std.range; void main() { foreach (i, line; zip(sequence!"n", File("deneme.txt").byLine)) { writefln("%s: %s", i, line); } } Ali