EgtGeneral 1.5c1 :

- aggiunta UngetLine a Scanner
- migliorato confronto tra file.
This commit is contained in:
Dario Sassi
2014-03-07 08:37:12 +00:00
parent ea6889f558
commit 214cd2439b
3 changed files with 80 additions and 34 deletions
+41 -7
View File
@@ -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