EgtMachKernel :
- correzione funzioni per importazione ed esportazione utensili.
This commit is contained in:
+33
-37
@@ -792,7 +792,7 @@ ToolsMgr::GetCurrToolThLength( double& dThLen) const
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::Export( STRVECTOR& vsToolsNames, string& sOutFile, bool bCompressed)
|
||||
ToolsMgr::Export( const STRVECTOR& vsToolsNames, const string& sOutFile, bool bCompressed)
|
||||
{
|
||||
LOG_ERROR( GetEMkLogger(), ( "Export Tools " + sOutFile).c_str()) ;
|
||||
|
||||
@@ -802,20 +802,13 @@ ToolsMgr::Export( STRVECTOR& vsToolsNames, string& sOutFile, bool bCompressed)
|
||||
return false ;
|
||||
string sOutDir = sOutFile.substr( 0, pos) ;
|
||||
|
||||
// Verifico che i tools da esportare esistano
|
||||
for ( STRVECTOR::iterator it = vsToolsNames.begin() ; it != vsToolsNames.end() ; it ++) {
|
||||
if ( m_suData.find( *it) == m_suData.end()){
|
||||
// se non lo trovo fra i tools lo elimino dal vettore dei ToolsNames
|
||||
string sOut = "Warning Export Tool : " + *it + " not found. Tool is ignored" ;
|
||||
LOG_ERROR( GetEMkLogger(), sOut.c_str()) ;
|
||||
vsToolsNames.erase( it) ;
|
||||
it -- ;
|
||||
}
|
||||
// Conto i tools da esportare
|
||||
int nTools = 0 ;
|
||||
for ( STRVECTOR::const_iterator it = vsToolsNames.begin() ; it != vsToolsNames.end() ; it ++) {
|
||||
if ( m_suData.find( *it) != m_suData.end())
|
||||
nTools ++ ;
|
||||
}
|
||||
|
||||
// Numero tools da salvare
|
||||
size_t nTools = vsToolsNames.size() ;
|
||||
|
||||
// inizializzo il writer
|
||||
Writer TheWriter ;
|
||||
if ( ! TheWriter.Init( sOutFile, bCompressed)) {
|
||||
@@ -834,7 +827,7 @@ ToolsMgr::Export( STRVECTOR& vsToolsNames, string& sOutFile, bool bCompressed)
|
||||
bool bOk = TheWriter.OutText( TF_HEADER) ;
|
||||
bOk = bOk && TheWriter.OutText( TF_VERSION + "=" + ToString( TF_CURR_VER)) ;
|
||||
bOk = bOk && TheWriter.OutText( TF_TOOLSIZE + "=" + ToString( ToolData::GetSize())) ;
|
||||
bOk = bOk && TheWriter.OutText( TF_TOTAL + "=" + to_string( nTools)) ;
|
||||
bOk = bOk && TheWriter.OutText( TF_TOTAL + "=" + ToString( nTools)) ;
|
||||
|
||||
if ( ! bOk) {
|
||||
LOG_ERROR( GetEMkLogger(), "Export Tools : Error on Header") ;
|
||||
@@ -863,8 +856,15 @@ ToolsMgr::Export( STRVECTOR& vsToolsNames, string& sOutFile, bool bCompressed)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::ExportOneTool( string& sToolName, Writer& TheWriter, int& nCounter, string& sOutDir)
|
||||
ToolsMgr::ExportOneTool( const string& sToolName, Writer& TheWriter, const int& nCounter, const string& sOutDir)
|
||||
{
|
||||
// se il tool non esiste nel DB lo ignoro
|
||||
if ( m_suData.find( sToolName) == m_suData.end()){
|
||||
string sOut = "Warning Export Tool : " + sToolName + " not found. Tool is ignored" ;
|
||||
LOG_ERROR( GetEMkLogger(), sOut.c_str()) ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
const ToolData * tData = GetTool( sToolName) ;
|
||||
string sOut ;
|
||||
if ( tData == nullptr){
|
||||
@@ -900,16 +900,13 @@ ToolsMgr::ExportOneTool( string& sToolName, Writer& TheWriter, int& nCounter, st
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
STRVECTOR
|
||||
ToolsMgr::ToBeImported( string& sFile)
|
||||
bool
|
||||
ToolsMgr::ToBeImported( const string& sFile, STRVECTOR& vsToolsNames)
|
||||
{
|
||||
// Vettore con i nomi di tutti i tools che posso importare da sFile.
|
||||
STRVECTOR vsToolsNames ;
|
||||
|
||||
Scanner TheScanner ;
|
||||
if ( ! TheScanner.Init( sFile, ";")) {
|
||||
LOG_ERROR( GetEMkLogger(), "Tools ToBeImported : Error on Init") ;
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
// leggo l'intestazione
|
||||
@@ -923,9 +920,9 @@ ToolsMgr::ToBeImported( string& sFile)
|
||||
|
||||
string sLine ;
|
||||
if ( ! TheScanner.GetLine( sLine))
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
if ( sLine.front() != '[' || sLine.back() != ']')
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
|
||||
bool bToolName = false ;
|
||||
bool bRemoved = false ;
|
||||
@@ -951,39 +948,38 @@ ToolsMgr::ToBeImported( string& sFile)
|
||||
}
|
||||
}
|
||||
|
||||
return vsToolsNames ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
STRVECTOR
|
||||
ToolsMgr::Import( string& sFile, STRVECTOR& vsToolsToImport, STRVECTOR& vsToolsNames)
|
||||
bool
|
||||
ToolsMgr::Import( const string& sFile, const STRVECTOR& vsToolsToImport, const STRVECTOR& vsToolsNames, STRVECTOR& vsImported)
|
||||
{
|
||||
LOG_ERROR( GetEMkLogger(), ( "Import Tools : " + sFile).c_str()) ;
|
||||
STRVECTOR vsImported ;
|
||||
|
||||
// Verifico validità dei ToolsNames
|
||||
for ( size_t i = 0 ; i < vsToolsNames.size() ; i ++) {
|
||||
if ( m_suData.find( vsToolsNames[i]) != m_suData.end()){
|
||||
LOG_ERROR( GetEMkLogger(), ( " Error : name \"" + vsToolsNames[i] + "\" is already used").c_str()) ;
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
}
|
||||
if ( i != vsToolsNames.size() - 1 && find( vsToolsNames.begin() + i + 1, vsToolsNames.end(), vsToolsNames[i]) != vsToolsNames.end()){
|
||||
LOG_ERROR( GetEMkLogger(), ( " Error : name \"" + vsToolsNames[i] + "\" is already used").c_str()) ;
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
|
||||
// sFile directory
|
||||
size_t pos = sFile.rfind( "\\") ;
|
||||
if ( pos == string::npos)
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
string sFileDir = sFile.substr( 0, pos) ;
|
||||
|
||||
// Inizializzo lo scanner
|
||||
Scanner TheScanner ;
|
||||
if ( ! TheScanner.Init( sFile, ";")) {
|
||||
LOG_ERROR( GetEMkLogger(), " Import Tools : Error on Init") ;
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
}
|
||||
// leggo l'intestazione
|
||||
int nVersion = 0 ;
|
||||
@@ -999,9 +995,9 @@ ToolsMgr::Import( string& sFile, STRVECTOR& vsToolsToImport, STRVECTOR& vsToolsN
|
||||
// leggo i tool
|
||||
string sLine ;
|
||||
if( ! TheScanner.GetLine( sLine))
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
if ( sLine.front() != '[' || sLine.back() != ']')
|
||||
return STRVECTOR() ;
|
||||
return false ;
|
||||
TheScanner.UngetLine( sLine) ;
|
||||
|
||||
while ( TheScanner.GetLine( sLine)) {
|
||||
@@ -1009,7 +1005,7 @@ ToolsMgr::Import( string& sFile, STRVECTOR& vsToolsToImport, STRVECTOR& vsToolsN
|
||||
TheScanner.UngetLine( sLine) ;
|
||||
ToolData tData ;
|
||||
bOk = ReadTool( TheScanner, tData, nToolSize) ;
|
||||
vector<string>::iterator it = find( vsToolsToImport.begin(), vsToolsToImport.end(), tData.m_sName) ;
|
||||
vector<string>::const_iterator it = find( vsToolsToImport.begin(), vsToolsToImport.end(), tData.m_sName) ;
|
||||
|
||||
// Se il tool non deve essere importato proseguo con il successivo
|
||||
if ( it == vsToolsToImport.end())
|
||||
@@ -1057,13 +1053,13 @@ ToolsMgr::Import( string& sFile, STRVECTOR& vsToolsToImport, STRVECTOR& vsToolsN
|
||||
if ( ! vsImported.empty())
|
||||
m_bModified = true ;
|
||||
|
||||
return vsImported ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::ReadTool( Scanner& TheScanner, ToolData& tData, int& nToolSize)
|
||||
ToolsMgr::ReadTool( Scanner& TheScanner, ToolData& tData, const int& nToolSize) const
|
||||
{
|
||||
string sLine ;
|
||||
TheScanner.GetLine( sLine) ;
|
||||
@@ -1101,7 +1097,7 @@ ToolsMgr::ReadTool( Scanner& TheScanner, ToolData& tData, int& nToolSize)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
ToolsMgr::CopyToolDraw( string& sDraw, string& sOutDraw, string& sToolName)
|
||||
ToolsMgr::CopyToolDraw( const string& sDraw, const string& sOutDraw, const string& sToolName)
|
||||
{
|
||||
// se il file del disegno esiste lo copio nella nuova cartella
|
||||
if ( ExistsFile( sDraw)){
|
||||
|
||||
Reference in New Issue
Block a user