www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - write to file array by lines

reply Suliman <evermind live.ru> writes:
I have got:
string [] total_content;

I am appending to it data on every iteration.

total_content ~= somedata

File file = File(`D:\code\2vlad\result.txt`, "a+");
file.write(total_content);

I need to write it's to file by lines. Like:
somedataline1
somedataline2
somedataline3

I tried to do like:
total_content ~= somedata ~ "\n"

but in result I am getting all data in one line:
somedataline1 "\n" somedataline2 "\n" somedataline3 "\n"

what I am doing wrong? I know about split, but how it can be 
called on writing time?
Mar 15 2016
next sibling parent Anonymouse <asdf asdf.com> writes:
On Tuesday, 15 March 2016 at 10:58:16 UTC, Suliman wrote:
 I have got:
 string [] total_content;

 I am appending to it data on every iteration.

 total_content ~= somedata

 File file = File(`D:\code\2vlad\result.txt`, "a+");
 file.write(total_content);

 I need to write it's to file by lines. Like:
 somedataline1
 somedataline2
 somedataline3

 I tried to do like:
 total_content ~= somedata ~ "\n"

 but in result I am getting all data in one line:
 somedataline1 "\n" somedataline2 "\n" somedataline3 "\n"

 what I am doing wrong? I know about split, but how it can be 
 called on writing time?
Windows CRLF line endings, perhaps?
Mar 15 2016
prev sibling next sibling parent reply wobbles <grogan.colin gmail.com> writes:
On Tuesday, 15 March 2016 at 10:58:16 UTC, Suliman wrote:
 I have got:
 string [] total_content;

 I am appending to it data on every iteration.

 total_content ~= somedata

 File file = File(`D:\code\2vlad\result.txt`, "a+");
 file.write(total_content);

 I need to write it's to file by lines. Like:
 somedataline1
 somedataline2
 somedataline3

 I tried to do like:
 total_content ~= somedata ~ "\n"

 but in result I am getting all data in one line:
 somedataline1 "\n" somedataline2 "\n" somedataline3 "\n"

 what I am doing wrong? I know about split, but how it can be 
 called on writing time?
You're on windows, is newline not '\r\n' ? (I'm guessing here!)
Mar 15 2016
parent reply Suliman <evermind live.ru> writes:
I created better example to show.

string [] myarr = ["foo", "bar", "baz"];
myarr ~= "new";
File file = File(`result.txt`, "w");
file.write(myarr);

is any way to write myarr to file in byLine mode
Mar 15 2016
next sibling parent wobbles <grogan.colin gmail.com> writes:
On Tuesday, 15 March 2016 at 12:55:17 UTC, Suliman wrote:
 I created better example to show.

 string [] myarr = ["foo", "bar", "baz"];
 myarr ~= "new";
 File file = File(`result.txt`, "w");
 file.write(myarr);

 is any way to write myarr to file in byLine mode
myarr .each!(line => file.writeln(line));
Mar 15 2016
prev sibling parent wobbles <grogan.colin gmail.com> writes:
On Tuesday, 15 March 2016 at 12:55:17 UTC, Suliman wrote:
 I created better example to show.

 string [] myarr = ["foo", "bar", "baz"];
 myarr ~= "new";
 File file = File(`result.txt`, "w");
 file.write(myarr);

 is any way to write myarr to file in byLine mode
void main(){ import std.stdio; import std.ascii; import std.algorithm; string[] myArr = ["foo", "bar", "baz"]; myArr ~= "new"; writeln("=== each! ==="); myArr.each!(a => writeln(a)); writeln("=== Using format ==="); writefln("%-(%s\n%)", myArr); writeln("=== Using joiner ==="); myArr.joiner(std.ascii.newline).writeln; } Output: === each! === foo bar baz new === Using format === foo bar baz new === Using joiner === foo bar baz new
Mar 15 2016
prev sibling parent John Colvin <john.loughran.colvin gmail.com> writes:
On Tuesday, 15 March 2016 at 10:58:16 UTC, Suliman wrote:
 I have got:
 string [] total_content;

 I am appending to it data on every iteration.

 total_content ~= somedata

 File file = File(`D:\code\2vlad\result.txt`, "a+");
 file.write(total_content);

 I need to write it's to file by lines. Like:
 somedataline1
 somedataline2
 somedataline3

 I tried to do like:
 total_content ~= somedata ~ "\n"

 but in result I am getting all data in one line:
 somedataline1 "\n" somedataline2 "\n" somedataline3 "\n"

 what I am doing wrong? I know about split, but how it can be 
 called on writing time?
http://forum.dlang.org/group/learn would be more appropriate for this sort of question.
Mar 15 2016