digitalmars.D - Issue with writefln ?
- 0ffh <spam frankhirsch.net> Apr 04 2007
- Marcin Kuszczak <aarti interia.pl> Apr 04 2007
- BCS <BCS pathlink.com> Apr 04 2007
- 0ffh <spam frankhirsch.net> Apr 04 2007
- Dan <murpsoft hotmail.com> Apr 04 2007
- "Frank Benoit (keinfarbton)" <benoit tionex.removethispart.de> Apr 04 2007
- 0ffh <spam frankhirsch.net> Apr 04 2007
Hija,
I get an exception (std.format string) thrown
after I read a file with std.file.read and try
to writefln its content, while it works fine
with toStringz and printf.
Code is something like:
char[] s=cast(char[])stf.file.read("name.ext");
printf("<%s>\n",toStringz(s)); // works fine
writelnf("<",s,">"); // exception generated
I have shrunk the file to:
garble"%"urgh
I do strongly suppose that the problem lies
somewhere in part saying "%" , but... ?
Is this a Hemiptera? :-)
Regards,
frank
Apr 04 2007
0ffh wrote:Hija, I get an exception (std.format string) thrown after I read a file with std.file.read and try to writefln its content, while it works fine with toStringz and printf. Code is something like: char[] s=cast(char[])stf.file.read("name.ext"); printf("<%s>\n",toStringz(s)); // works fine writelnf("<",s,">"); // exception generated I have shrunk the file to: garble"%"urgh I do strongly suppose that the problem lies somewhere in part saying "%" , but... ? Is this a Hemiptera? :-) Regards, frank
I think that your file has non UTF-8 characters inside (characters with codes >= 128). char[] is in D UTF8 sequence. You probably should first recode your file. -- Regards Marcin Kuszczak (Aarti_pl) ------------------------------------- Ask me why I believe in Jesus - http://zapytaj.dlajezusa.pl (en/pl) Doost (port of few Boost libraries) - http://www.dsource.org/projects/doost/ -------------------------------------
Apr 04 2007
0ffh wrote:Hija, I get an exception (std.format string) thrown after I read a file with std.file.read and try to writefln its content, while it works fine with toStringz and printf. Code is something like: char[] s=cast(char[])stf.file.read("name.ext"); printf("<%s>\n",toStringz(s)); // works fine writelnf("<",s,">"); // exception generated I have shrunk the file to: garble"%"urgh I do strongly suppose that the problem lies somewhere in part saying "%" , but... ? Is this a Hemiptera? :-) Regards, frank
unless it is being used from a format string, all char[] are assumed to be format strings. Try this: writelnf("<%s>",s); In general it is bad practice to have a non literal string used in writef/writelnf unless you only reference it by way of a format string.
Apr 04 2007
BCS wrote:unless it is being used from a format string, all char[] are assumed to be format strings. Try this: writelnf("<%s>",s); In general it is bad practice to have a non literal string used in writef/writelnf unless you only reference it by way of a format string.
Works and is soundly explained! Cheers to you, good sir! :)
Apr 04 2007
BCS Wrote:unless it is being used from a format string, all char[] are assumed to be format strings. Try this: writelnf("<%s>",s); In general it is bad practice to have a non literal string used in writef/writelnf unless you only reference it by way of a format string.
Wow! I never thought of that. (sincerely) I'll be sure to do that in the future.
Apr 04 2007
hehe, i am your neighbor :) I am driving everyday through LB. Frank http://www.frappr.com/d
Apr 04 2007
Frank Benoit (keinfarbton) wrote:hehe, i am your neighbor :) I am driving everyday through LB. Frank http://www.frappr.com/d
I have sent pm to you, but no reply yet, hope I got the despamming right... otherwise you may want to mail me? Regards, Frank p.s. The address /does/ actually work, as of now... otherwise try frank at etc...
Apr 04 2007









Marcin Kuszczak <aarti interia.pl> 