diff --git a/CmdScanner.cpp b/CmdScanner.cpp index a390ec5..65d2aff 100644 --- a/CmdScanner.cpp +++ b/CmdScanner.cpp @@ -1,14 +1,14 @@ //---------------------------------------------------------------------------- -// EgalTech 2013-2013 +// EgalTech 2013-2014 //---------------------------------------------------------------------------- -// File : CmdScanner.cpp Data : 25.11.13 Versione : 1.3a1 +// File : CmdScanner.cpp Data : 27.05.14 Versione : 1.5e2 // Contenuto : Implementazione della classe CmdScanner. // Scansione di file di testo con codifica UTF-8 (anche con BOM) // e quindi anche ASCII. // // // Modifiche : 19.01.13 DS Creazione modulo. -// +// 27.05.14 DS Agg. gestione continuazione linea con carattere '\\' alla fine. // //---------------------------------------------------------------------------- @@ -67,7 +67,27 @@ CmdScanner::GetLine( string& sLine) { if ( ! m_CmdFile.is_open()) return false ; + // leggu una linea + if ( ! GetSingleLine( sLine)) + return false ; + // mentre alla fine c'è il carattere di continuazione, leggo la successiva + string sCont ; + while ( ! sLine.empty() && sLine.back() == '\\') { + // elimino il carattere di continuazione linea + sLine.pop_back() ; + // leggo la linea successiva + if ( GetSingleLine( sCont)) + sLine += sCont ; + else + break ; + } + return true ; +} +//---------------------------------------------------------------------------- +bool +CmdScanner::GetSingleLine( string& sLine) +{ do { if ( ! getline( m_CmdFile, sLine)) return false ; diff --git a/CmdScanner.h b/CmdScanner.h index d82b15a..e510409 100644 --- a/CmdScanner.h +++ b/CmdScanner.h @@ -28,6 +28,9 @@ class CmdScanner int GetCurrLineNbr( void) { return m_nLineNbr ; } const std::string& GetFilePath( void) { return m_sFName ; } + private : + bool GetSingleLine( std::string& sLine) ; + private : std::string m_sFName ; std::ifstream m_CmdFile ; diff --git a/EgtGeneral.rc b/EgtGeneral.rc index 460da5a..0f87376 100644 Binary files a/EgtGeneral.rc and b/EgtGeneral.rc differ