From faa33e34ba5f15e1eace57e460d461b7a74273c5 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Fri, 12 Dec 2014 17:37:57 +0100 Subject: [PATCH] Changeset: 553 fdbozzo - 07/12/2014 23:56:34: - Mejoras en el LOG --- foxbin2prg.prg | 110 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 81 insertions(+), 29 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index c8bc00a..7d1b866 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -536,6 +536,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -563,7 +564,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM c_CurDir = '' c_InputFile = '' c_OriginalFileName = '' - c_LogFile = '' + c_LogFile = ADDBS( SYS(2023) ) + 'FoxBin2Prg.LOG' c_TextLog = '' c_OutputFile = '' c_Recompile = '1' @@ -1808,7 +1809,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM TRY LOCAL I, lcPath, lnCodError, lcFileSpec, lcFile, laFiles(1,5), laDirInfo(1,5) ; - , lnFileCount, lcErrorInfo, lcErrorFile ; + , lnFileCount, lcErrorInfo, lcErrorFile, lnPCount, laParams(1) ; , loEx AS EXCEPTION ; , loFSO AS Scripting.FileSystemObject ; , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ; @@ -1820,6 +1821,18 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM loWSH = .o_WSH DIMENSION .a_ProcessedFiles(1) .n_ProcessedFiles = 0 + lnPCount = 0 + + *-- Funciona y lee los parámetros, pero no le veo un caso de uso claro. 12/12/2014 + *.ReadInputVFPParams( @laParams, @lnPCount ) + + *IF lnPCount > 0 THEN + * .writeLog( 'Params.Externos: ' + TRANSFORM(lnPCount,'@L ##') ) + * FOR I = 1 TO lnPCount + * .writeLog( 'Param.' + TRANSFORM(I,'@L ##') + ' [' + laParams(I) + ']' ) + * ENDFOR + * EXIT + *ENDIF IF EMPTY(tcRecompile) AND NOT EMPTY(tc_InputFile) AND ADIR(laDirInfo, tc_InputFile, "D")=1 THEN IF SUBSTR( laDirInfo(1,5), 5, 1 ) = "D" @@ -1903,9 +1916,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' IF .l_Debug - IF FILE( .c_LogFile ) - ERASE ( .c_LogFile ) - ENDIF + ERASE ( .c_LogFile ) ENDIF lnFileCount = ADIR( laFiles, lcFileSpec, '', 1 ) @@ -1913,10 +1924,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM FOR I = 1 TO lnFileCount lcFile = FORCEPATH( laFiles(I,1), JUSTPATH( lcFileSpec ) ) .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) - - IF FILE( lcFile ) - lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName ) - ENDIF + lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() ENDFOR @@ -1936,20 +1945,21 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .c_LogFile = ADDBS(tc_InputFile) + tcType + '.LOG' IF .l_Debug - IF FILE( .c_LogFile ) - ERASE ( .c_LogFile ) - ENDIF + ERASE ( .c_LogFile ) ENDIF .ObtenerArchivosDelDirectorio( tc_InputFile, @laFiles, @lnFileCount ) FOR I = 1 TO lnFileCount lcFile = laFiles(I) + IF NOT .TieneSoporte_Bin2Prg( JUSTEXT(lcFile) ) OR NOT FILE(lcFile) THEN LOOP ENDIF + .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) lnCodError = .Convertir( lcFile, @toModulo, @toEx, .F., tcOriginalFileName ) + .writeLog_Flush() DO CASE CASE lnCodError = 1799 && Conversion Cancelled @@ -1976,20 +1986,21 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .c_LogFile = ADDBS(tc_InputFile) + tcType + '.LOG' IF .l_Debug - IF FILE( .c_LogFile ) - ERASE ( .c_LogFile ) - ENDIF + ERASE ( .c_LogFile ) ENDIF .ObtenerArchivosDelDirectorio( tc_InputFile, @laFiles, @lnFileCount ) FOR I = 1 TO lnFileCount lcFile = laFiles(I) + IF NOT .TieneSoporte_Prg2Bin( JUSTEXT(lcFile) ) OR NOT FILE(lcFile) THEN LOOP ENDIF + .AvanceDelProceso( loLang.C_PROCESSING_LOC + ' ' + lcFile + '...', I, lnFileCount, 0 ) lnCodError = .Convertir( lcFile, @toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() DO CASE CASE lnCodError = 1799 && Conversion Cancelled @@ -2057,9 +2068,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' IF .l_Debug - IF FILE( .c_LogFile ) - ERASE ( .c_LogFile ) - ENDIF + ERASE ( .c_LogFile ) ENDIF SELECT 0 @@ -2081,6 +2090,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM IF .TieneSoporte_Bin2Prg( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() ENDIF ENDFOR @@ -2098,9 +2108,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .c_LogFile = ADDBS( JUSTPATH( lcFileSpec ) ) + STRTRAN( JUSTFNAME( lcFileSpec ), '*', '_ALL' ) + '.LOG' IF .l_Debug - IF FILE( .c_LogFile ) - ERASE ( .c_LogFile ) - ENDIF + ERASE ( .c_LogFile ) ENDIF lnFileCount = ALINES( laFiles, STREXTRACT( FILETOSTR(tc_InputFile), C_BUILDPROJ_I, C_BUILDPROJ_F ), 1+4 ) @@ -2123,6 +2131,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM IF .TieneSoporte_Prg2Bin( UPPER(JUSTEXT(lcFile)) ) AND FILE( lcFile ) lnCodError = .Convertir( lcFile, toModulo, @toEx, .T., tcOriginalFileName ) + .writeLog_Flush() ENDIF ENDFOR @@ -2166,6 +2175,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CATCH TO toEx lnCodError = toEx.ERRORNO THIS.l_Error = .T. + + IF VARTYPE(loLang) <> 'O' THEN + loLang = CREATEOBJECT("CL_LANG","EN") + ENDIF IF '-INTERACTIVE' $ ('-' + tcType) THEN toEx.UserValue = 'tc_InputDir = [' + TRANSFORM(tc_InputFile) + ']' @@ -2189,6 +2202,12 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF FINALLY + lcErrorFile = FORCEPATH('FoxBin2Prg_Error.LOG', SYS(2023) ) + + IF VARTYPE(loLang) <> 'O' THEN + loLang = CREATEOBJECT("CL_LANG","EN") + ENDIF + USE IN (SELECT("TABLABIN")) THIS.writeLog_Flush() *THIS.descargar_frm_avance() @@ -2196,7 +2215,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM DO CASE CASE '-INTERACTIVE' $ ('-' + tcType) - lcErrorFile = FORCEPATH('FoxBin2Prg.LOG',GETENV('TEMP') ) DO CASE CASE lnCodError = 1799 && Conversion Cancelled @@ -2211,12 +2229,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM OTHERWISE MESSAGEBOX( loLang.C_END_OF_PROCESS_LOC, 0+64+4096, 'FoxBin2Prg', 60000 ) - STRTOFILE( THIS.c_ErrorLog, lcErrorFile ) ENDCASE CASE THIS.l_Debug - lcErrorFile = FORCEPATH('FoxBin2Prg.LOG',GETENV('TEMP') ) STRTOFILE( THIS.c_ErrorLog, lcErrorFile ) ENDCASE @@ -2295,9 +2311,6 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM *-- OPTIMIZACIÓN VC2/SC2: VERIFICO SI EL ARCHIVO BASE FUE PROCESADO PARA DESCARTAR REPROCESOS - *IF 'aclx0010' $ LOWER(.c_InputFile) - * SET STEP ON - *ENDIF IF INLIST(lcExtension,'VC2','SC2') AND .l_UseClassPerFile AND .l_RedirectClassPerFileToMain IF OCCURS('.', JUSTSTEM(.c_InputFile)) = 0 THEN lc_BaseFile = .c_InputFile @@ -2558,7 +2571,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDIF .o_Conversor.Convertir( @toModulo, .F., THIS ) - .c_TextLog = .c_TextLog + CR_LF + .o_Conversor.c_TextLog && Recojo el LOG que haya generado el conversor + .writeLog() + .writeLog(.o_Conversor.c_TextLog) && Recojo el LOG que haya generado el conversor ELSE *-- Optimizado: El Origen es anterior al Destino - No hace falta regenerar *.writeLog( '> El archivo de salida [<>] no se regenera por ser más nuevo que el de entrada.' ) @@ -2812,6 +2826,44 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE ReadInputVFPParams + LPARAMETERS taParams, tnPCount + EXTERNAL ARRAY taParams + *----------------------------------------------------------------------------- + * Obtengo la linea completa de comandos + * Adaptado de http://www.news2news.com/vfp/?example=51&function=78 + * Facilitado por Mario Lopez en el foro FoxPro de Google Español - 23/12/2013 + * https://groups.google.com/d/msg/publicesvfoxpro/llS-kTNrG9M/LA4D3fd152IJ + *----------------------------------------------------------------------------- + DECLARE INTEGER GetCommandLine IN kernel32 + DECLARE INTEGER GlobalSize IN kernel32 INTEGER HMEM + DECLARE RtlMoveMemory IN kernel32 AS CopyMemory STRING @Destination, INTEGER SOURCE, INTEGER nLength + + LOCAL lnAddress, lnBufsize, lsBuffer + lnAddress = GetCommandLine() && returns an address in memory + lnBufsize = GlobalSize(lnAddress) + + * allocating and filling a buffer + IF lnBufsize <> 0 + lsBuffer = REPLICATE(CHR(0), lnBufsize) + = CopyMemory(@lsBuffer, lnAddress, lnBufsize) + ENDIF + + lsBuffer = STRTRAN(lsBuffer, '"'+CHR(0), '"'+CHR(13)+CHR(10)) + lsBuffer = STRTRAN(lsBuffer, '" ', '"'+CHR(13)+CHR(10), 1, 1) + lsBuffer = STRTRAN(lsBuffer, CHR(0), ' ') + tnPCount = ALINES( taParams, lsBuffer, 4 ) + + IF tnPCount > 1 THEN + ADEL( taParams, 1 ) + tnPCount = tnPCount - 1 + DIMENSION taParams(tnPCount) + ENDIF + + RETURN + ENDPROC + + ******************************************************************************************************************* PROCEDURE RenameFile LPARAMETERS tcFileName, tcEXE_CAPS, toFSO AS Scripting.FileSystemObject, tlRelanzarError @@ -2885,8 +2937,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM PROCEDURE writeLog_Flush IF THIS.l_Debug AND NOT EMPTY(THIS.c_TextLog) STRTOFILE( STRCONV(THIS.c_TextLog + CR_LF,9), THIS.c_LogFile, 1 ) - THIS.c_TextLog = '' ENDIF + THIS.c_TextLog = '' ENDPROC