From 5014bab534ff95d1547f7f6d9a896a75694eb505 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sun, 21 Aug 2022 12:46:53 +0200 Subject: [PATCH] Mod: replace std::ifstream/std::ofstream with Base::ifstream/Base::ofstream --- src/Base/Builder3D.cpp | 5 ++++- src/Mod/Fem/App/FemMesh.cpp | 10 ++++++---- src/Mod/MeshPart/App/CurveProjector.cpp | 11 ++++++++--- src/Mod/Part/App/TopoShapePyImp.cpp | 7 +++++-- src/Mod/Path/App/AppPathPy.cpp | 5 +++-- src/Mod/Raytracing/App/AppRaytracingPy.cpp | 14 +++++++------- src/Mod/Raytracing/App/PovTools.cpp | 3 ++- src/Mod/Robot/App/Robot6Axis.cpp | 5 ++++- src/Mod/Spreadsheet/App/Sheet.cpp | 5 +++-- src/Mod/TechDraw/App/DrawUtil.cpp | 6 +++++- src/Mod/TechDraw/App/DrawViewSymbolPyImp.cpp | 4 ++-- src/Mod/TechDraw/App/HatchLine.cpp | 11 +++++++---- src/Mod/TechDraw/Gui/QGITile.cpp | 5 ++++- 13 files changed, 60 insertions(+), 31 deletions(-) diff --git a/src/Base/Builder3D.cpp b/src/Base/Builder3D.cpp index 3563afa8b974..63fff62420cc 100644 --- a/src/Base/Builder3D.cpp +++ b/src/Base/Builder3D.cpp @@ -32,7 +32,9 @@ #include "Builder3D.h" #include "Console.h" #include "Exception.h" +#include "FileInfo.h" #include "Matrix.h" +#include "Stream.h" #include "Tools.h" @@ -318,7 +320,8 @@ void Builder3D::saveToLog() void Builder3D::saveToFile(const char* FileName) { result << "} "; - std::ofstream file(FileName); + Base::FileInfo fi(FileName); + Base::ofstream file(fi); if(!file) throw FileException("Builder3D::saveToFile(): Can not open file..."); diff --git a/src/Mod/Fem/App/FemMesh.cpp b/src/Mod/Fem/App/FemMesh.cpp index 9c6058ea5a25..3614d3cd1e95 100644 --- a/src/Mod/Fem/App/FemMesh.cpp +++ b/src/Mod/Fem/App/FemMesh.cpp @@ -1545,8 +1545,9 @@ void FemMesh::readNastran(const std::string &Filename) _Mtrx = Base::Matrix4D(); - std::ifstream inputfile; - inputfile.open(Filename.c_str()); + Base::FileInfo fi(Filename); + Base::ifstream inputfile; + inputfile.open(fi); inputfile.seekg(std::ifstream::beg); std::string line1,line2; std::vector mesh_elements; @@ -1636,8 +1637,9 @@ void FemMesh::readNastran95(const std::string &Filename) _Mtrx = Base::Matrix4D(); - std::ifstream inputfile; - inputfile.open(Filename.c_str()); + Base::FileInfo fi(Filename); + Base::ifstream inputfile; + inputfile.open(fi); inputfile.seekg(std::ifstream::beg); std::string line1,line2,tcard; diff --git a/src/Mod/MeshPart/App/CurveProjector.cpp b/src/Mod/MeshPart/App/CurveProjector.cpp index 563ebaa84cff..c295d92ced3b 100644 --- a/src/Mod/MeshPart/App/CurveProjector.cpp +++ b/src/Mod/MeshPart/App/CurveProjector.cpp @@ -59,7 +59,9 @@ #include #include +#include #include +#include using namespace MeshPart; @@ -78,7 +80,8 @@ CurveProjector::CurveProjector(const TopoDS_Shape &aShape, const MeshKernel &pMe void CurveProjector::writeIntersectionPointsToFile(const char *name) { // export points - std::ofstream str(name, std::ios::out | std::ios::binary); + Base::FileInfo fi(name); + Base::ofstream str(fi, std::ios::out | std::ios::binary); str.precision(4); str.setf(std::ios::fixed | std::ios::showpoint); for (result_type::const_iterator it1 = mvEdgeSplitPoints.begin();it1!=mvEdgeSplitPoints.end();++it1) { @@ -319,7 +322,8 @@ void CurveProjectorSimple::projectCurve( const TopoDS_Edge& aEdge, MeshFacetIterator It(_Mesh); Base::SequencerLauncher seq("Building up projection map...", ulNbOfPoints+1); - std::ofstream str("projected.asc", std::ios::out | std::ios::binary); + Base::FileInfo fi("projected.asc"); + Base::ofstream str(fi, std::ios::out | std::ios::binary); str.precision(4); str.setf(std::ios::fixed | std::ios::showpoint); @@ -711,7 +715,8 @@ void MeshProjection::splitMeshByShape ( const TopoDS_Shape &aShape, float fMaxDi std::vector rPolyLines; projectToMesh( aShape, fMaxDist, rPolyLines ); - std::ofstream str("output.asc", std::ios::out | std::ios::binary); + Base::FileInfo fi("output.asc"); + Base::ofstream str(fi, std::ios::out | std::ios::binary); str.precision(4); str.setf(std::ios::fixed | std::ios::showpoint); for (std::vector::const_iterator it = rPolyLines.begin();it!=rPolyLines.end();++it) { diff --git a/src/Mod/Part/App/TopoShapePyImp.cpp b/src/Mod/Part/App/TopoShapePyImp.cpp index 0367fc094ab5..6e080ec58b69 100644 --- a/src/Mod/Part/App/TopoShapePyImp.cpp +++ b/src/Mod/Part/App/TopoShapePyImp.cpp @@ -67,6 +67,7 @@ #endif #include +#include #include #include #include @@ -405,7 +406,8 @@ PyObject* TopoShapePy::exportBinary(PyObject *args) try { // read binary brep - std::ofstream str(input, std::ios::out | std::ios::binary); + Base::FileInfo fi(input); + Base::ofstream str(fi, std::ios::out | std::ios::binary); getTopoShapePtr()->exportBinary(str); str.close(); } @@ -516,7 +518,8 @@ PyObject* TopoShapePy::importBinary(PyObject *args) try { // read binary brep - std::ifstream str(input, std::ios::in | std::ios::binary); + Base::FileInfo fi(input); + Base::ifstream str(fi, std::ios::in | std::ios::binary); getTopoShapePtr()->importBinary(str); str.close(); } diff --git a/src/Mod/Path/App/AppPathPy.cpp b/src/Mod/Path/App/AppPathPy.cpp index 675f796afe11..ac33305e21d5 100644 --- a/src/Mod/Path/App/AppPathPy.cpp +++ b/src/Mod/Path/App/AppPathPy.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -163,7 +164,7 @@ namespace Path { if (obj->getTypeId().isDerivedFrom(Base::Type::fromName("Path::Feature"))) { const Toolpath& path = static_cast(obj)->Path.getValue(); std::string gcode = path.toGCode(); - std::ofstream ofile(EncodedName.c_str()); + Base::ofstream ofile(file); ofile << gcode; ofile.close(); } @@ -199,7 +200,7 @@ namespace Path { try { // read the gcode file - std::ifstream filestr(file.filePath().c_str()); + Base::ifstream filestr(file); std::stringstream buffer; buffer << filestr.rdbuf(); std::string gcode = buffer.str(); diff --git a/src/Mod/Raytracing/App/AppRaytracingPy.cpp b/src/Mod/Raytracing/App/AppRaytracingPy.cpp index a5877cdf4281..20fa6df33ea2 100644 --- a/src/Mod/Raytracing/App/AppRaytracingPy.cpp +++ b/src/Mod/Raytracing/App/AppRaytracingPy.cpp @@ -26,7 +26,9 @@ #include #include +#include #include +#include #include "PovTools.h" #include "LuxTools.h" // automatically generated..... @@ -72,15 +74,13 @@ class Module : public Py::ExtensionModule private: Py::Object writeProjectFile(const Py::Tuple& args) { - char *fromPython; - if (! PyArg_ParseTuple(args.ptr(), "(s)", &fromPython)) + const char *fromPython = "FreeCAD.pov"; + if (! PyArg_ParseTuple(args.ptr(), "|(s)", &fromPython)) throw Py::Exception(); - std::ofstream fout; - if (fromPython) - fout.open(fromPython); - else - fout.open("FreeCAD.pov"); + Base::ofstream fout; + Base::FileInfo fi(fromPython); + fout.open(fi); fout << FreeCAD ; fout.close(); diff --git a/src/Mod/Raytracing/App/PovTools.cpp b/src/Mod/Raytracing/App/PovTools.cpp index 97b172245633..4dbba9fe5d9e 100644 --- a/src/Mod/Raytracing/App/PovTools.cpp +++ b/src/Mod/Raytracing/App/PovTools.cpp @@ -317,7 +317,8 @@ void PovTools::writeShapeCSV(const char *FileName, BRepMesh_IncrementalMesh MESH(Shape,fMeshDeviation); // open the file and write - std::ofstream fout(FileName); + Base::FileInfo fi(FileName); + Base::ofstream fout(fi); // counting faces and start sequencer int l = 1; diff --git a/src/Mod/Robot/App/Robot6Axis.cpp b/src/Mod/Robot/App/Robot6Axis.cpp index 8f327f489ae1..5cb04af7c687 100644 --- a/src/Mod/Robot/App/Robot6Axis.cpp +++ b/src/Mod/Robot/App/Robot6Axis.cpp @@ -26,8 +26,10 @@ #ifndef _PreComp_ #endif +#include #include #include +#include #include "kdl_cp/chain.hpp" #include "kdl_cp/chainfksolver.hpp" @@ -136,7 +138,8 @@ void split(std::string const& string, const char delimiter, std::vector #include #include +#include #include +#include #include #include @@ -1154,7 +1156,9 @@ void DrawUtil::copyFile(std::string inSpec, std::string outSpec) { // Base::Console().Message("DU::copyFile(%s, %s)\n", inSpec.c_str(), outSpec.c_str()); if (inSpec.empty()) { - std::ofstream output(outSpec); + // create an empty file + Base::FileInfo fi(outSpec); + Base::ofstream output(fi); return; } Base::FileInfo fi(inSpec); diff --git a/src/Mod/TechDraw/App/DrawViewSymbolPyImp.cpp b/src/Mod/TechDraw/App/DrawViewSymbolPyImp.cpp index 7dc95877ce20..9e03f7dd7a76 100644 --- a/src/Mod/TechDraw/App/DrawViewSymbolPyImp.cpp +++ b/src/Mod/TechDraw/App/DrawViewSymbolPyImp.cpp @@ -55,8 +55,8 @@ PyObject* DrawViewSymbolPy::dumpSymbol(PyObject *args) } Base::FileInfo fi(fileSpec); - std::ofstream outfile; - outfile.open(fi.filePath()); + Base::ofstream outfile; + outfile.open(fi); outfile.write (symbolRepr.c_str(),symbolRepr.size()); outfile.close(); if (outfile.good()) { diff --git a/src/Mod/TechDraw/App/HatchLine.cpp b/src/Mod/TechDraw/App/HatchLine.cpp index caf29e433e36..ddc4210da320 100644 --- a/src/Mod/TechDraw/App/HatchLine.cpp +++ b/src/Mod/TechDraw/App/HatchLine.cpp @@ -36,6 +36,7 @@ #include #include +#include #include #include "Geometry.h" @@ -305,8 +306,9 @@ std::vector PATLineSpec::getSpecsForPattern(std::string& parmFile, { std::vector result; std::vector lineSpecs; - std::ifstream inFile; - inFile.open (parmFile, std::ifstream::in); + Base::FileInfo fi(parmFile); + Base::ifstream inFile; + inFile.open (fi, std::ifstream::in); if(!inFile.is_open()) { Base::Console().Message( "Cannot open input file.\n"); return result; @@ -385,8 +387,9 @@ std::vector PATLineSpec::loadPatternDef(std::ifstream& inFile) std::vector PATLineSpec::getPatternList(std::string& parmFile) { std::vector result; - std::ifstream inFile; - inFile.open (parmFile, std::ifstream::in); + Base::FileInfo fi(parmFile); + Base::ifstream inFile; + inFile.open (fi, std::ifstream::in); if(!inFile.is_open()) { Base::Console().Message( "Cannot open input file.\n"); return result; diff --git a/src/Mod/TechDraw/Gui/QGITile.cpp b/src/Mod/TechDraw/Gui/QGITile.cpp index f562802fba6b..fe3096fe0880 100644 --- a/src/Mod/TechDraw/Gui/QGITile.cpp +++ b/src/Mod/TechDraw/Gui/QGITile.cpp @@ -34,7 +34,9 @@ #include #include #include +#include #include +#include #include #include @@ -231,7 +233,8 @@ void QGITile::makeText() //read whole text file into std::string std::string QGITile::getStringFromFile(std::string inSpec) { - std::ifstream f(inSpec); + Base::FileInfo fi(inSpec); + Base::ifstream f(fi); std::stringstream ss; ss << f.rdbuf(); return ss.str();