From e31f4e26c83950c273cd7ff0920b78a26268bc25 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Sat, 6 Jun 2015 17:47:25 +0000 Subject: [PATCH] EgtGeneral 1.6f1 : - aggiunto EgtUUID e relativa gestione - aggiunte CopyFileEgt e RenameFile - aggiunt Writer per scrivere file di testo anche compressi. --- EgtGeneral.rc | Bin 11630 -> 11630 bytes EgtGeneral.vcxproj | 15 ++++---- EgtGeneral.vcxproj.filters | 21 ++++++++---- EgtUUID.cpp | 58 +++++++++++++++++++++++++++++++ FileCompare.cpp | 2 +- FileUtils.cpp | 14 ++++++++ Scan.cpp => Scanner.cpp | 6 ++-- Writer.cpp | 68 +++++++++++++++++++++++++++++++++++++ 8 files changed, 168 insertions(+), 16 deletions(-) create mode 100644 EgtUUID.cpp rename Scan.cpp => Scanner.cpp (90%) create mode 100644 Writer.cpp diff --git a/EgtGeneral.rc b/EgtGeneral.rc index 8977ced2ae412374d926bf69998543ff68160670..6f2a68f8bccd3003eda6b0b444ee4fb5acdf3b17 100644 GIT binary patch delta 126 zcmaDC^)70|H#Sx?1|0^&&FjTZGfjRctTQ=4kYn;MP8sGjpdh1AI^*UBZYO5AB6DV_ Y#7Y)Su}sFzLDCKg#kfqAQ4Zn)08S|*0ssI2 delta 126 zcmaDC^)70|H#SyN1|0_D&FjTZGfjRctTQ=4kYn;MP8sG@pdh1AI^*UBZYO5AB6DV_ Y#7Y)Su}sFzLDCKg#kfqAQ4Zn)08j-Z3IG5A diff --git a/EgtGeneral.vcxproj b/EgtGeneral.vcxproj index 66be3a0..499acda 100644 --- a/EgtGeneral.vcxproj +++ b/EgtGeneral.vcxproj @@ -105,7 +105,7 @@ Windows true - version.lib;shlwapi.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) copy $(TargetDir)$(TargetName).pdb \EgtDev\Lib\ @@ -126,7 +126,7 @@ copy $(TargetPath) \EgtProg\DllD32 Windows true - version.lib;shlwapi.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) copy $(TargetDir)$(TargetName).pdb \EgtDev\Lib\ @@ -155,7 +155,7 @@ copy $(TargetPath) \EgtProg\DllD64 false true true - version.lib;shlwapi.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) copy $(TargetDir)$(TargetName).lib \EgtDev\Lib\ @@ -183,7 +183,7 @@ copy $(TargetPath) \EgtProg\Dll32 false true true - version.lib;shlwapi.lib;%(AdditionalDependencies) + version.lib;shlwapi.lib;Rpcrt4.lib;%(AdditionalDependencies) copy $(TargetDir)$(TargetName).lib \EgtDev\Lib\ @@ -201,8 +201,9 @@ copy $(TargetPath) \EgtProg\Dll64 - + + @@ -229,6 +230,7 @@ copy $(TargetPath) \EgtProg\Dll64 + @@ -240,7 +242,7 @@ copy $(TargetPath) \EgtProg\Dll64 false - + Create Create @@ -248,6 +250,7 @@ copy $(TargetPath) \EgtProg\Dll64 Create + diff --git a/EgtGeneral.vcxproj.filters b/EgtGeneral.vcxproj.filters index 5b41179..881ef88 100644 --- a/EgtGeneral.vcxproj.filters +++ b/EgtGeneral.vcxproj.filters @@ -21,9 +21,6 @@ File di intestazione - - File di intestazione - File di intestazione @@ -66,6 +63,12 @@ File di intestazione + + File di intestazione + + + File di intestazione + @@ -74,9 +77,6 @@ File di origine - - File di origine - File di origine @@ -104,6 +104,15 @@ File di origine + + File di origine + + + File di origine + + + File di origine + diff --git a/EgtUUID.cpp b/EgtUUID.cpp new file mode 100644 index 0000000..a5ec091 --- /dev/null +++ b/EgtUUID.cpp @@ -0,0 +1,58 @@ +//---------------------------------------------------------------------------- +// EgalTech 2015-2015 +//---------------------------------------------------------------------------- +// File : EgtUUID.cpp Data : 01.06.15 Versione : 1.6f1 +// Contenuto : Funzioni per EgtUUID. +// +// +// +// Modifiche : 01.06.15 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +//--------------------------- Include ---------------------------------------- +#include "stdafx.h" +#include "/EgtDev/Include/EGnEgtUUID.h" +#include +#include + +using namespace std ; + +//---------------------------------------------------------------------------- +bool +CreateEgtUUID( EgtUUID& uuId) +{ + if ( UuidCreate( (UUID*)( &uuId)) != RPC_S_OK) + return false ; + return true ; +} + +//---------------------------------------------------------------------------- +string +ToString( const EgtUUID& uuId) +{ + static const int order[16] = {3,2,1,0, 5,4, 7,6, 8,9, 10,11,12,13,14,15} ; + static const int dash[16] = {0,0,0,1, 0,1, 0,1, 0,1, 0, 0, 0, 0, 0, 0} ; + static const char x[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'} ; + const unsigned char* b = (const unsigned char*) &uuId ; + char szBuff[40] ; + char* p = szBuff ; + for ( int i = 0 ; i < 16 ; ++i) { + *p++ = x[b[order[i]]>>4] ; + *p++ = x[b[order[i]]&0x0f] ; + if ( dash[i] != 0) + *p++ = '-' ; + } + *p = '\0' ; + return szBuff ; +} + +//---------------------------------------------------------------------------- +bool +FromString( const string& sVal, EgtUUID& uuId) +{ + if ( UuidFromStringA( (unsigned char*) sVal.c_str(), (UUID*)( &uuId)) != RPC_S_OK) + return false ; + return true ; +} \ No newline at end of file diff --git a/FileCompare.cpp b/FileCompare.cpp index 7ff2b9f..0d96cba 100644 --- a/FileCompare.cpp +++ b/FileCompare.cpp @@ -16,7 +16,7 @@ #include "stdafx.h" #include "/EgtDEv/Include/EgnFileCompare.h" #include "/EgtDEv/Include/EgtStringConverter.h" -#include "/EgtDEv/Include/EGnScan.h" +#include "/EgtDEv/Include/EGnScanner.h" #include #include diff --git a/FileUtils.cpp b/FileUtils.cpp index c7d88d1..8013552 100644 --- a/FileUtils.cpp +++ b/FileUtils.cpp @@ -40,6 +40,20 @@ ExistsFile( const string& sFile) return true ; } +//----------------------------------------------------------------------------- +bool +CopyFileEgt( const string& sFile, const string& sNewFile) +{ + return ( ::CopyFileW( stringtoW( sFile), stringtoW( sNewFile), false) != 0) ; +} + +//----------------------------------------------------------------------------- +bool +RenameFile( const string& sFile, const string& sNewFile) +{ + return ( ::MoveFileW( stringtoW( sFile), stringtoW( sNewFile)) != 0) ; +} + //----------------------------------------------------------------------------- bool EraseFile( const string& sFile) diff --git a/Scan.cpp b/Scanner.cpp similarity index 90% rename from Scan.cpp rename to Scanner.cpp index 4e5a618..7478eb4 100644 --- a/Scan.cpp +++ b/Scanner.cpp @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- // EgalTech 2013-2014 //---------------------------------------------------------------------------- -// File : Scan.cpp Data : 17.06.14 Versione : 1.5f3 +// File : Scanner.cpp Data : 17.06.14 Versione : 1.5f3 // Contenuto : Implementazione della classe Scanner. // Scansione di file di testo con codifica UTF-8 (anche con BOM) // e quindi anche ASCII. @@ -16,7 +16,7 @@ //--------------------------- Include ---------------------------------------- #include "stdafx.h" -#include "/EgtDEv/Include/EGnScan.h" +#include "/EgtDEv/Include/EGnScanner.h" #include "/EgtDEv/Include/EGnStringUtils.h" #include "/EgtDEv/Include/EgtStringConverter.h" #include "/EgtDev/Extern/Zlib/Include/zlib.h" @@ -25,7 +25,7 @@ using namespace std ; //---------------------------------------------------------------------------- bool -Scanner::Init( const std::string& sFile, const char* szRemInit, bool bSkipEmptyLine) +Scanner::Init( const string& sFile, const char* szRemInit, bool bSkipEmptyLine) { // apertura del file di ingresso m_InFile = gzopen_w( stringtoW( sFile), "rb") ; diff --git a/Writer.cpp b/Writer.cpp new file mode 100644 index 0000000..344e21c --- /dev/null +++ b/Writer.cpp @@ -0,0 +1,68 @@ +//---------------------------------------------------------------------------- +// EgalTech 2015-2015 +//---------------------------------------------------------------------------- +// File : Writer.cpp Data : 02.06.15 Versione : 1.6f1 +// Contenuto : Implementazione della classe Writer. +// Scrittura di file di testo con codifica UTF-8. +// +// +// Modifiche : 02.06.15 DS Creazione modulo. +// +// +// +//---------------------------------------------------------------------------- + +//--------------------------- Include ---------------------------------------- +#include "stdafx.h" +#include "/EgtDev/Include/EGnWriter.h" +#include "/EgtDev/Include/EgtStringConverter.h" +#include "/EgtDev/Extern/Zlib/Include/zlib.h" + +using namespace std ; + +//---------------------------------------------------------------------------- +bool +Writer::Init( const string& sFileOut, bool bCompressed) +{ + // apertura del file di uscita + m_OutFile = gzopen_w( stringtoW( sFileOut), ( bCompressed ? "wb" : "wbT")) ; + if ( m_OutFile == nullptr) + return false ; + const int DIM_BUFFER = 65536 ; + if ( gzbuffer( m_OutFile, DIM_BUFFER) != Z_OK) + return false ; + const int COMPR_LEVEL = 3 ; // 0 = no compression ... 9 = max compression + if ( gzsetparams( m_OutFile, COMPR_LEVEL, Z_DEFAULT_STRATEGY) != Z_OK) + return false ; + return true ; +} + +//---------------------------------------------------------------------------- +bool +Writer::Close( void) +{ + if ( m_OutFile != nullptr) { + bool bOk = ( gzclose( m_OutFile) == Z_OK) ; + m_OutFile = nullptr ; + return bOk ; + } + return true ; +} + +//---------------------------------------------------------------------------- +bool +Writer::OutText( const string& sText, bool bEndL) +{ + // verifico apertura file + if ( m_OutFile == nullptr) + return false ; + // scrivo stringa + if ( gzputs( m_OutFile, sText.c_str()) == Z_ERRNO) + return false ; + // se richiesto, scrivo fine linea + if ( bEndL) { + if ( gzputs( m_OutFile, "\r\n") == Z_ERRNO) + return false ; + } + return true ; +}