readText fails to open file

Dmitry Olshansky dmitry.olsh at gmail.com
Sun Jun 17 01:29:30 PDT 2012


On 17.06.2012 12:21, GreatEmerald wrote:
> This is kind of silly, and I probably missed something, but for some
> reason I can't get any kind of text file opened when using readText from
> std.file. This is what I'm trying to do:
>
> import std.stdio;
> import std.file;
>
> int main(string[] args)
> {
> if (!isFile(args[0]))
> {
> writeln("Error: Input file does not exist or is not a valid file!");
> return 1;
> }
>
> auto LTFFile = chomp(readText(args[0]));
>
> readln();
> return 0;
> }
>
> Nice and simple, right? So I execute it:
>
>  > ./LTF2LIP LTF2LIP.d
> std.utf.UTFException at std/utf.d(645): Invalid UTF-8 sequence (at index 1)
>

It's a BOM most likely. There has been talk on making readText work with 
them.
I'm not sure how you'd check there is no BOM, most text editors will 
hide it. Hex editor may help though.

> And I'm sure that the file is in UTF-8, with LF line endings, without a
> BOM. The same error is thrown when I try any other kind of files. So
> what gives?..

Other then this try cast(string)read(args[0]); it's not any worse.

-- 
Dmitry Olshansky


More information about the Digitalmars-d-learn mailing list