Daniel Keep wrote:
Charles Hixson wrote:
I want to read a bunch of files, and if the aren't UTF, then I want to
list their names for conversion, or other processing.  How should this
be handled??

try..catch..finally blocks just ignore this error.

type stuff.d
import std.stdio;
import std.utf;

void main()
{
    try
    {
        writefln("A B \xfe C");
    }
    catch( UtfException e )
    {
        writefln("I caught a %s!", e);
    }
}

dmd stuff && stuff
A B I caught a 4invalid UTF-8 sequence!

Works for me.

Sorry, the error is on the read.  The code I tried to use was:

try     {       lin     =       fil.readLine;   }
catch
{ writefln("File <<" ~ filIter [curFilNdx] ~ ">> is not a valid UTF file.");
   fil.close;
   getLine;
  return;
}
finally
{       }
debug (9) writefln ("lin = <<" ~ lin ~ ">>");
try
{ validate (lin); }
catch   (UtfException ue)
{ writefln ("File <<" ~ filIter [curFilNdx] ~ ">> is not a valid UTF file.");
   fil.close;
   getLine;
   return;
}

where fil is a File and getLine is one of my routines that automatically switches to the next file if the current file has been closed.

Reply via email to