EgtGeneral 1.5d5 :
- migliorato confronto binario tra file (si interrompe oltre 10 differenze).
This commit is contained in:
+12
-7
@@ -1,13 +1,14 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2014
|
||||
//----------------------------------------------------------------------------
|
||||
// File : FileCompare.cpp Data : 06.03.14 Versione : 1.5c1
|
||||
// File : FileCompare.cpp Data : 27.04.14 Versione : 1.5d5
|
||||
// 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.
|
||||
// 27.04.14 DS Nel confronto binario ci si arresta alla 10^ differenza.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -183,7 +184,7 @@ BinaryFileCompare( const string& sFile1, const string& sFile2, const string& sFi
|
||||
|
||||
// ciclo sui buffer dei due file
|
||||
int nDiff = 0 ;
|
||||
const int DIM_BUFF = 512 ;
|
||||
const int DIM_BUFF = 8192 ;
|
||||
char cBuff1[DIM_BUFF] ;
|
||||
char cBuff2[DIM_BUFF] ;
|
||||
ifIn1.read( cBuff1, DIM_BUFF) ;
|
||||
@@ -191,14 +192,16 @@ BinaryFileCompare( const string& sFile1, const string& sFile2, const string& sFi
|
||||
ifIn2.read( cBuff2, DIM_BUFF) ;
|
||||
int nBuff2 = int( ifIn2.gcount()) ;
|
||||
int nBase = 0 ;
|
||||
while ( nBuff1 > 0 && nBuff2 > 0) {
|
||||
while ( nBuff1 > 0 && nBuff2 > 0 && nDiff < 10) {
|
||||
// confronto dei blocchi
|
||||
for ( int i = 0 ; i < nBuff1 && i < nBuff2 ; ++i) {
|
||||
if ( cBuff1[i] != cBuff2[i]) {
|
||||
nDiff ++ ;
|
||||
// emetto differenze
|
||||
ofOut << " F1(" << ( nBase + i) << "):" << CharToHexString( cBuff1[i]) << endl ;
|
||||
ofOut << " F2(" << ( nBase + i) << "):" << CharToHexString( cBuff2[i]) << endl ;
|
||||
// emetto prime 10 differenze
|
||||
if ( nDiff <= 10) {
|
||||
ofOut << " F1(" << ( nBase + i) << "):" << CharToHexString( cBuff1[i]) << endl ;
|
||||
ofOut << " F2(" << ( nBase + i) << "):" << CharToHexString( cBuff2[i]) << endl ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,8 +216,10 @@ BinaryFileCompare( const string& sFile1, const string& sFile2, const string& sFi
|
||||
// emetto riassunto differenze
|
||||
if ( nDiff == 0)
|
||||
ofOut << " Same content" << endl ;
|
||||
else
|
||||
else if ( nDiff <= 10)
|
||||
ofOut << " Found " << nDiff << " differences !!!" << endl ;
|
||||
else
|
||||
ofOut << " Found a lot of differences ( > 10) !!!" << endl ;
|
||||
|
||||
// chiudo i file
|
||||
ofOut.close() ;
|
||||
|
||||
Reference in New Issue
Block a user