From: guido Date: Tue, 3 May 2005 19:52:40 +0000 (+0000) Subject: determine input format by filename extension X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=07477fa7a218b58d379d8eba0dc4dece9507c620;p=dealii-svn.git determine input format by filename extension git-svn-id: https://svn.dealii.org/trunk@10638 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/source/grid/grid_in.cc b/deal.II/deal.II/source/grid/grid_in.cc index 8365f8a531..aa3b0d6f2e 100644 --- a/deal.II/deal.II/source/grid/grid_in.cc +++ b/deal.II/deal.II/source/grid/grid_in.cc @@ -995,8 +995,23 @@ template void GridIn::read (const std::string& filename, Format format) { + // Search file class for meshes PathSearch search("MESH"); + // Open the file and remember its name std::istream& in = search.open(filename.c_str()); + const std::string& name = search.name(); + + if (format == Default) + { + const unsigned int slashpos = name.find_last_of('/'); + const unsigned int dotpos = name.find_last_of('.'); + if (dotpos < name.length() + && (dotpos > slashpos || slashpos == name.length())) + { + std::string ext = name.substr(dotpos+1); + format = parse_format(ext); + } + } read(in, format); } @@ -1066,6 +1081,9 @@ GridIn::parse_format (const std::string &format_name) if (format_name == "msh") return msh; + if (format_name == "inp") + return ucd; + if (format_name == "ucd") return ucd;