EgtGeomKernel :
- aggiunta lettura file Nge binari compressi.
This commit is contained in:
+16
-24
@@ -18,7 +18,6 @@
|
|||||||
#include "/EgtDev/Include/EGkStringUtils3d.h"
|
#include "/EgtDev/Include/EGkStringUtils3d.h"
|
||||||
#include "/EgtDev/Include/EgtStringConverter.h"
|
#include "/EgtDev/Include/EgtStringConverter.h"
|
||||||
#include "/EgtDev/Extern/zlib/Include/zlib.h"
|
#include "/EgtDev/Extern/zlib/Include/zlib.h"
|
||||||
#include <fstream>
|
|
||||||
|
|
||||||
using namespace std ;
|
using namespace std ;
|
||||||
|
|
||||||
@@ -67,31 +66,24 @@ NgeReader::Close( void)
|
|||||||
int
|
int
|
||||||
NgeReader::NgeType( const string& sFile)
|
NgeReader::NgeType( const string& sFile)
|
||||||
{
|
{
|
||||||
// apertura del file di ingresso
|
// apertura file
|
||||||
ifstream InFile ;
|
gzFile_s* InFile = gzopen_w( stringtoW( sFile), "rb") ;
|
||||||
InFile.open( stringtoW( sFile), ios::in | ios::binary) ;
|
if ( InFile == nullptr)
|
||||||
if ( InFile.fail())
|
|
||||||
return NGE_ERROR ;
|
return NGE_ERROR ;
|
||||||
|
// lettura dei primi caratteri
|
||||||
// lettura dei primi 31 byte
|
char szBuff[9] = "\0\0\0\0\0\0\0\0" ;
|
||||||
char cBuff[32] ;
|
int nLen = gzread( InFile, &szBuff, 8) ;
|
||||||
InFile.read( cBuff, 31) ;
|
if ( gzclose( InFile) != Z_OK || nLen == Z_ERRNO)
|
||||||
cBuff[InFile.gcount()] = '\0' ;
|
return NGE_ERROR ;
|
||||||
|
// se binario
|
||||||
// chiusura del file
|
if ( szBuff[0] == '\x0F' && szBuff[1] == '\x0F')
|
||||||
InFile.close() ;
|
|
||||||
|
|
||||||
// verifico se file compresso (gz)
|
|
||||||
if ( cBuff[0] == '\x1F' && cBuff[1] == '\x8B')
|
|
||||||
return NGE_ASCII ;
|
|
||||||
|
|
||||||
// verifico se iniziano con "START"
|
|
||||||
string sBuff = cBuff ;
|
|
||||||
size_t nPos = sBuff.find( "START") ;
|
|
||||||
if ( nPos != string::npos && nPos < 10)
|
|
||||||
return NGE_ASCII ;
|
|
||||||
else
|
|
||||||
return NGE_BINARY ;
|
return NGE_BINARY ;
|
||||||
|
// se testo
|
||||||
|
string sBuff{ szBuff} ;
|
||||||
|
if ( sBuff.find( "START") != string::npos)
|
||||||
|
return NGE_ASCII ;
|
||||||
|
// altrimenti errore
|
||||||
|
return NGE_ERROR ;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user