From 9aeb86804bb145a2b52b01ef218e8be45e34937f Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 27 May 2014 16:04:37 +0000 Subject: [PATCH] EgtGeneral 1.5e2 : - CmdScanner ora accetta '//' come segno di continuazione sulla linea successiva. --- CmdScanner.cpp | 26 +++++++++++++++++++++++--- CmdScanner.h | 3 +++ EgtGeneral.rc | Bin 11630 -> 11630 bytes 3 files changed, 26 insertions(+), 3 deletions(-) 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 460da5af4da7c2ada6acb3e68a0fff5a6e8da839..0f87376afa7b10efa2c22f98b32ef99774f56c06 100644 GIT binary patch delta 86 zcmaDC^)70|H#SD2&8x*uGfj?D3<5GYDrPcnuH$xL1`At)sEvy0jGI%0-Oz=6q@hAc In)h-806DN6?f?J) delta 86 zcmaDC^)70|H#SDY&8x*uGfj?D3<5GYDrPcnuH$xL1`At)sEvy0jGI%0-Oz=6q@hAc In)h-8061VA<^TWy