EgtGeneral 1.5c1 :
- aggiunta UngetLine a Scanner - migliorato confronto tra file.
This commit is contained in:
+41
-7
@@ -1,13 +1,13 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2013
|
||||
// EgalTech 2013-2014
|
||||
//----------------------------------------------------------------------------
|
||||
// File : FileCompare.cpp Data : 11.12.13 Versione : 1.4a5
|
||||
// File : FileCompare.cpp Data : 06.03.14 Versione : 1.5c1
|
||||
// Contenuto : Funzioni per confronto tra due file (di testo).
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 11.12.13 DS Creazione modulo.
|
||||
//
|
||||
// 06.03.14 DS Possibilità di ri-sincronizzarsi dopo due linee.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -30,6 +30,8 @@ TextFileCompare( const string& sFile1, const string& sFile2, const string& sRemI
|
||||
string sLine2 ;
|
||||
string sLine1S ;
|
||||
string sLine2S ;
|
||||
string sLine1T ;
|
||||
string sLine2T ;
|
||||
ofstream ofOut ;
|
||||
Scanner scFile1 ;
|
||||
Scanner scFile2 ;
|
||||
@@ -72,22 +74,54 @@ TextFileCompare( const string& sFile1, const string& sFile2, const string& sRemI
|
||||
// provo a caricare le linee successive
|
||||
bOk1 = scFile1.GetLine( sLine1S) ;
|
||||
bOk2 = scFile2.GetLine( sLine2S) ;
|
||||
// se le successive coincidono
|
||||
if ( sLine1S.compare( sLine2S) == 0) {
|
||||
ofOut << " resync F1(+1) with F2(+1)" << endl ;
|
||||
sLine1 = sLine1S ;
|
||||
sLine2 = sLine2S ;
|
||||
}
|
||||
// se la 1 corrente coincide con la 2 successiva
|
||||
if ( sLine1.compare( sLine2S) == 0) {
|
||||
else if ( sLine1.compare( sLine2S) == 0) {
|
||||
ofOut << " resync F1 with F2(+1)" << endl ;
|
||||
// mi porto avanti con il file 2
|
||||
sLine1 = sLine1S ;
|
||||
bOk2 = scFile2.GetLine( sLine2) ;
|
||||
}
|
||||
// se la 2 corrente coincide con la 1 successiva
|
||||
else if ( sLine2.compare( sLine1S) == 0) {
|
||||
ofOut << " resync F1(+1) with F2" << endl ;
|
||||
// mi porto avanti con il file 1
|
||||
bOk1 = scFile1.GetLine( sLine1) ;
|
||||
sLine2 = sLine2S ;
|
||||
}
|
||||
// altrimenti, continuo in sincronismo
|
||||
// altrimenti
|
||||
else {
|
||||
sLine1 = sLine1S ;
|
||||
sLine2 = sLine2S ;
|
||||
// carico le linee ancora successive
|
||||
bOk1 = scFile1.GetLine( sLine1T) ;
|
||||
bOk2 = scFile2.GetLine( sLine2T) ;
|
||||
// se la 1 corrente coincide con la 2 terza
|
||||
if ( sLine1.compare( sLine2T) == 0) {
|
||||
ofOut << " resync F1 with F2(+2)" << endl ;
|
||||
// ritorno la terza del file 1 e mi porto avanti con il file 2
|
||||
sLine1 = sLine1S ;
|
||||
scFile1.UngetLine( sLine1T) ;
|
||||
bOk2 = scFile2.GetLine( sLine2) ;
|
||||
}
|
||||
// se la 2 corrente coincide con la 1 terza
|
||||
else if ( sLine2.compare( sLine1T) == 0) {
|
||||
ofOut << " resync F1(+2) with F2" << endl ;
|
||||
// mi porto avanti con il file 1 e ritorno la terza del file 2
|
||||
bOk1 = scFile1.GetLine( sLine1) ;
|
||||
sLine2 = sLine2S ;
|
||||
scFile2.UngetLine( sLine2T) ;
|
||||
}
|
||||
// altrimenti, continuo in sincronismo
|
||||
else {
|
||||
sLine1 = sLine1S ;
|
||||
scFile1.UngetLine( sLine1T) ;
|
||||
sLine2 = sLine2S ;
|
||||
scFile2.UngetLine( sLine2T) ;
|
||||
}
|
||||
}
|
||||
}
|
||||
// passo alle linee successive
|
||||
|
||||
Reference in New Issue
Block a user