diff --git a/Applications/FileIO/Legacy/createSurface.cpp b/Applications/FileIO/Legacy/createSurface.cpp index 380a8ecb09bf2b3cc321ad41e4406bf95f615576..f89812667d34c20c684d3ebbb6e03f3ee11f315f 100644 --- a/Applications/FileIO/Legacy/createSurface.cpp +++ b/Applications/FileIO/Legacy/createSurface.cpp @@ -20,6 +20,8 @@ #include "Applications/FileIO/Gmsh/GMSHInterface.h" #include "Applications/FileIO/Gmsh/GmshReader.h" +#include "BaseLib/StringTools.h" + #include "GeoLib/GEOObjects.h" #include "GeoLib/Point.h" #include "GeoLib/Polygon.h" @@ -78,9 +80,9 @@ bool createSurface(GeoLib::Polyline const& ply, 0.0, 0, geo_names, false, false); gmsh_io.setPrecision(std::numeric_limits<double>::digits10); - // fs::path const temp_dir = fs::temp_directory_path(); - auto geo_file = fs::temp_directory_path() /= "createSurface.geo"; - auto msh_file = fs::temp_directory_path() /= "createSurface.msh"; + // write to random file in temp directory + auto geo_file = fs::temp_directory_path() /= BaseLib::random_string(32); + auto msh_file = fs::temp_directory_path() /= BaseLib::random_string(32); gmsh_io.writeToFile(geo_file.string()); // Newer gmsh versions write a newer file format for meshes per default. At diff --git a/BaseLib/StringTools.cpp b/BaseLib/StringTools.cpp index a5ee69ff12ff310233ecd44907232509681d7fcf..bc041110854a08416ad504710e59416cac2d9e1c 100644 --- a/BaseLib/StringTools.cpp +++ b/BaseLib/StringTools.cpp @@ -104,4 +104,21 @@ std::string format(const char* format_str, ... ) return std::string(buffer.data()); } +std::string random_string( size_t length ) +{ + auto randchar = []() -> char + { + const char charset[] = + "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz"; + const size_t max_index = (sizeof(charset) - 1); + return charset[ rand() % max_index ]; + }; + std::string str(length,0); + std::generate_n( str.begin(), length, randchar ); + + return str; +} + } // end namespace BaseLib diff --git a/BaseLib/StringTools.h b/BaseLib/StringTools.h index 382a65cc3d82ac1ec6d2dffc276a46ab36e3caa6..27f6f8a6f327aaa2c8a351c77d93756c05d03676 100644 --- a/BaseLib/StringTools.h +++ b/BaseLib/StringTools.h @@ -83,4 +83,7 @@ std::string const& tostring(std::string const& value); //! returns printf-like formatted string std::string format(const char* format_string, ... ); +//! Returns a random string of the given length containing just a-z,A-Z,0-9 +std::string random_string( size_t length ); + } // end namespace BaseLib