From 5f6945564fe33e35fa310353e646eca0af94f3f4 Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Tue, 7 Apr 2015 00:45:38 +0200 Subject: [PATCH] - Algunas optimizaciones WITH THIS --- foxbin2prg.exe | Bin 564919 -> 565559 bytes foxbin2prg.prg | 549 ++++++++++++++++++++++++++----------------------- 2 files changed, 286 insertions(+), 263 deletions(-) diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 408f6fefcc85bd9ca63c7a963631a79a0c5efd3d..77fcf53c5bee03d300eb1f6d29def66d190abe7f 100644 GIT binary patch delta 18998 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 delta 18885 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 diff --git a/foxbin2prg.prg b/foxbin2prg.prg index ad0d911..55b87fd 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -486,14 +486,12 @@ IF ATC('-BIN2PRG','-'+tc_InputFile) >= 1 OR ATC('-PRG2BIN','-'+tc_InputFile) >= ENDIF loCnv = CREATEOBJECT("c_foxbin2prg") - loEx = NULL lnResp = loCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ; , tcDontShowProgress, NULL, @loEx, .F., tcOriginalFileName, tcRecompile, tcNoTimestamps ; , .F., .F., .F., tcCFG_File ) ADDPROPERTY(_SCREEN, 'ExitCode', lnResp) - *SET COVERAGE TO IF _VFP.STARTMODE <> 4 && 4 = Visual FoxPro was started as a distributable .app or .exe file. @@ -878,13 +876,15 @@ DEFINE CLASS c_foxbin2prg AS SESSION TRY *-- Si o_Frm_Avance se habilitó de forma externa, n_ShowProgressbar podría ser 0 para controlarlo desde fuera. - IF THIS.l_ProcessFiles AND VARTYPE(THIS.o_Frm_Avance) = "O" THEN - *-- Cuando esta rutina se invoca desde el script, este método es el #1 y no puede cancelarse todavía - IF THIS.o_Frm_Avance.l_Cancelled AND PROGRAM(-1) > 1 THEN - ERROR 1799 + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + IF .l_ProcessFiles AND VARTYPE(.o_Frm_Avance) = "O" THEN + *-- Cuando esta rutina se invoca desde el script, este método es el #1 y no puede cancelarse todavía + IF .o_Frm_Avance.l_Cancelled AND PROGRAM(-1) > 1 THEN + ERROR 1799 + ENDIF + .o_Frm_Avance.AvanceDelProceso( tcTexto, tnValor, tnTotal, tnTipo ) ENDIF - THIS.o_Frm_Avance.AvanceDelProceso( tcTexto, tnValor, tnTotal, tnTipo ) - ENDIF + ENDWITH CATCH THROW @@ -2888,25 +2888,27 @@ DEFINE CLASS c_foxbin2prg AS SESSION LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang - IF toEx.ErrorNo = 1799 THEN && Conversion Cancelled - tcErrorInfo = loLang.C_CONVERSION_CANCELLED_BY_USER_LOC - ELSE - tcErrorInfo = THIS.Exception2Str(@toEx) + CR_LF + loLang.C_SOURCEFILE_LOC + TRANSFORM(THIS.c_InputFile) + CR_LF - ENDIF + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + IF toEx.ErrorNo = 1799 THEN && Conversion Cancelled + tcErrorInfo = loLang.C_CONVERSION_CANCELLED_BY_USER_LOC + ELSE + tcErrorInfo = .Exception2Str(@toEx) + CR_LF + loLang.C_SOURCEFILE_LOC + TRANSFORM(.c_InputFile) + CR_LF + ENDIF - ADDPROPERTY(_SCREEN, 'ExitCode', toEx.ERRORNO) + ADDPROPERTY(_SCREEN, 'ExitCode', toEx.ERRORNO) - *-- Escribo la información de error en la variable log de errores - THIS.writeErrorLog( REPLICATE('-', 100), 1 ) - THIS.writeLog( tcErrorInfo ) - THIS.writeErrorLog( tcErrorInfo ) - THIS.writeErrorLog( ) + *-- Escribo la información de error en la variable log de errores + .writeErrorLog( REPLICATE('-', 100), 1 ) + .writeLog( tcErrorInfo ) + .writeErrorLog( tcErrorInfo ) + .writeErrorLog( ) - *-- Escribo la información de error en el archivo log de errores - TRY - STRTOFILE( tcErrorInfo, EVL( THIS.c_InputFile, 'foxbin2prg_errorlog' ) + '.ERR' ) - CATCH - ENDTRY + *-- Escribo la información de error en el archivo log de errores + TRY + STRTOFILE( tcErrorInfo, EVL( .c_InputFile, 'foxbin2prg_errorlog' ) + '.ERR' ) + CATCH + ENDTRY + ENDWITH RETURN ENDPROC @@ -3472,27 +3474,29 @@ DEFINE CLASS c_foxbin2prg AS SESSION tcDir = ADDBS(tcDir) IF DIRECTORY(tcDir) - loLang = _SCREEN.o_FoxBin2Prg_Lang - THIS.AvanceDelProceso( loLang.C_SCANNING_FILE_AND_DIR_INFO_LOC + ' ' + tcDir + '...', 0, 0, 0 ) - lnFiles = ADIR( laFiles, tcDir + '*.*', 'D', 1) + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + loLang = _SCREEN.o_FoxBin2Prg_Lang + .AvanceDelProceso( loLang.C_SCANNING_FILE_AND_DIR_INFO_LOC + ' ' + tcDir + '...', 0, 0, 0 ) + lnFiles = ADIR( laFiles, tcDir + '*.*', 'D', 1) - *-- Busco los archivos - FOR I = 1 TO lnFiles - IF SUBSTR( laFiles(I,5), 5, 1 ) == 'D' - LOOP - ENDIF - lnFileCount = lnFileCount + 1 - DIMENSION taFiles(lnFileCount) - taFiles(lnFileCount) = tcDir + laFiles(I,1) - ENDFOR + *-- Busco los archivos + FOR I = 1 TO lnFiles + IF SUBSTR( laFiles(I,5), 5, 1 ) == 'D' + LOOP + ENDIF + lnFileCount = lnFileCount + 1 + DIMENSION taFiles(lnFileCount) + taFiles(lnFileCount) = tcDir + laFiles(I,1) + ENDFOR - *-- Busco los subdirectorios - FOR I = 1 TO lnFiles - IF NOT SUBSTR( laFiles(I,5), 5, 1 ) == 'D' OR LEFT(laFiles(I,1), 1) == '.' - LOOP - ENDIF - THIS.ObtenerArchivosDelDirectorio( tcDir + laFiles(I,1), @taFiles, @lnFileCount ) - ENDFOR + *-- Busco los subdirectorios + FOR I = 1 TO lnFiles + IF NOT SUBSTR( laFiles(I,5), 5, 1 ) == 'D' OR LEFT(laFiles(I,1), 1) == '.' + LOOP + ENDIF + .ObtenerArchivosDelDirectorio( tcDir + laFiles(I,1), @taFiles, @lnFileCount ) + ENDFOR + ENDWITH ENDIF ENDPROC @@ -3542,16 +3546,18 @@ DEFINE CLASS c_foxbin2prg AS SESSION LOCAL lcLog, laFile(1,5) ; , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' loLang = _SCREEN.o_FoxBin2Prg_Lang - *THIS.ChangeFileAttribute( tcFileName, '+N' ) - lcLog = '' - THIS.o_FNC.Capitalize( tcFileName, '', 'F', @lcLog, tlRelanzarError, '1' ) - IF THIS.n_Debug >= 2 THEN - lcLog = SUBSTR(lcLog,3) - THIS.writeLog() - THIS.writeLog( C_TAB + TEXTMERGE(loLang.C_REQUESTING_CAPITALIZATION_OF_FILE_LOC) ) - THIS.writeLog( lcLog ) - ENDIF + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + lcLog = '' + .o_FNC.Capitalize( tcFileName, '', 'F', @lcLog, tlRelanzarError, '1' ) + + IF .n_Debug >= 2 THEN + lcLog = SUBSTR(lcLog,3) + .writeLog() + .writeLog( C_TAB + TEXTMERGE(loLang.C_REQUESTING_CAPITALIZATION_OF_FILE_LOC) ) + .writeLog( lcLog ) + ENDIF + ENDWITH ENDPROC @@ -3712,10 +3718,12 @@ DEFINE CLASS c_foxbin2prg AS SESSION PROCEDURE writeErrorLog_Flush - IF NOT EMPTY(THIS.c_TextErr) - STRTOFILE( THIS.c_TextErr + CR_LF, THIS.c_ErrorLogFile, 1 ) - ENDIF - THIS.c_TextErr = '' + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + IF NOT EMPTY(.c_TextErr) + STRTOFILE( .c_TextErr + CR_LF, .c_ErrorLogFile, 1 ) + ENDIF + .c_TextErr = '' + ENDWITH ENDPROC @@ -3746,10 +3754,12 @@ DEFINE CLASS c_foxbin2prg AS SESSION PROCEDURE writeLog_Flush - IF THIS.n_Debug > 0 AND NOT EMPTY(THIS.c_TextLog) - STRTOFILE( THIS.c_TextLog + CR_LF, THIS.c_LogFile, 1 ) - ENDIF - THIS.c_TextLog = '' + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + IF .n_Debug > 0 AND NOT EMPTY(.c_TextLog) + STRTOFILE( .c_TextLog + CR_LF, .c_LogFile, 1 ) + ENDIF + .c_TextLog = '' + ENDWITH ENDPROC @@ -4982,53 +4992,55 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION LOCAL lcTimeStamp,lnYear,lnMonth,lnDay,lnHour,lnMinutes,lnSeconds,lcTime,lnHour,ltTimeStamp,lnResto ; ,lcTimeStamp_Ret, laDirInfo[1,5], loEx AS EXCEPTION - lcTimeStamp_Ret = '' + WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' + lcTimeStamp_Ret = '' - IF EMPTY(tnTimestamp) - IF THIS.lFileMode - IF ADIR(laDirInfo,THIS.c_InputFile)=0 + IF EMPTY(tnTimestamp) + IF .lFileMode + IF ADIR(laDirInfo,.c_InputFile)=0 + EXIT + ENDIF + + ltTimeStamp = EVALUATE( '{^' + DTOC(laDirInfo(1,3)) + ' ' + TRANSFORM(laDirInfo(1,4)) + '}' ) + + *-- En mi arreglo, si la hora pasada tiene 32 segundos o más, redondeo al siguiente minuto, ya que + *-- la descodificación posterior de GetTimeStamp tiene ese margen de error. + IF SEC(m.ltTimeStamp) >= 32 + ltTimeStamp = m.ltTimeStamp + 28 + ENDIF + + lcTimeStamp_Ret = TTOC( ltTimeStamp ) EXIT ENDIF - ltTimeStamp = EVALUATE( '{^' + DTOC(laDirInfo(1,3)) + ' ' + TRANSFORM(laDirInfo(1,4)) + '}' ) + tnTimestamp = .n_ClassTimeStamp - *-- En mi arreglo, si la hora pasada tiene 32 segundos o más, redondeo al siguiente minuto, ya que - *-- la descodificación posterior de GetTimeStamp tiene ese margen de error. - IF SEC(m.ltTimeStamp) >= 32 - ltTimeStamp = m.ltTimeStamp + 28 + IF EMPTY(tnTimestamp) + EXIT ENDIF - - lcTimeStamp_Ret = TTOC( ltTimeStamp ) - EXIT ENDIF - tnTimestamp = THIS.n_ClassTimeStamp + *-- YYYY YYYM MMMD DDDD HHHH HMMM MMMS SSSS + lnResto = tnTimestamp + lnYear = INT( lnResto / 2**25 + 1980) + lnResto = lnResto % 2**25 + lnMonth = INT( lnResto / 2**21 ) + lnResto = lnResto % 2**21 + lnDay = INT( lnResto / 2**16 ) + lnResto = lnResto % 2**16 + lnHour = INT( lnResto / 2**11 ) + lnResto = lnResto % 2**11 + lnMinutes = INT( lnResto / 2**5 ) + lnResto = lnResto % 2**5 + lnSeconds = lnResto - IF EMPTY(tnTimestamp) - EXIT - ENDIF - ENDIF + lcTimeStamp = PADL(lnYear,4,'0') + "/" + PADL(lnMonth,2,'0') + "/" + PADL(lnDay,2,'0') + " " ; + + PADL(lnHour,2,'0') + ":" + PADL(lnMinutes,2,'0') + ":" + PADL(lnSeconds,2,'0') - *-- YYYY YYYM MMMD DDDD HHHH HMMM MMMS SSSS - lnResto = tnTimestamp - lnYear = INT( lnResto / 2**25 + 1980) - lnResto = lnResto % 2**25 - lnMonth = INT( lnResto / 2**21 ) - lnResto = lnResto % 2**21 - lnDay = INT( lnResto / 2**16 ) - lnResto = lnResto % 2**16 - lnHour = INT( lnResto / 2**11 ) - lnResto = lnResto % 2**11 - lnMinutes = INT( lnResto / 2**5 ) - lnResto = lnResto % 2**5 - lnSeconds = lnResto + ltTimeStamp = EVALUATE( "{^" + lcTimeStamp + "}" ) - lcTimeStamp = PADL(lnYear,4,'0') + "/" + PADL(lnMonth,2,'0') + "/" + PADL(lnDay,2,'0') + " " ; - + PADL(lnHour,2,'0') + ":" + PADL(lnMinutes,2,'0') + ":" + PADL(lnSeconds,2,'0') - - ltTimeStamp = EVALUATE( "{^" + lcTimeStamp + "}" ) - - lcTimeStamp_Ret = TTOC( ltTimeStamp ) + lcTimeStamp_Ret = TTOC( ltTimeStamp ) + ENDWITH CATCH TO loEx IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 @@ -5370,10 +5382,14 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION PROCEDURE normalizarAsignacion LPARAMETERS tcAsignacion, tcComentario LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos - THIS.get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor ) - tcComentario = '' - THIS.normalizarValorPropiedad( @lcPropName, @lcValor, @tcComentario ) - tcAsignacion = lcPropName + ' = ' + lcValor + + WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' + .get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor ) + tcComentario = '' + .normalizarValorPropiedad( @lcPropName, @lcValor, @tcComentario ) + tcAsignacion = lcPropName + ' = ' + lcValor + ENDWITH + RELEASE tcComentario, lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos RETURN tcAsignacion ENDPROC @@ -6031,7 +6047,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION LPARAMETERS tcText, tnTimestamp TRY - WITH THIS AS c_conversor_base OF 'FOXBIN2PRG.PRG' + WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG' IF EVL(tnTimestamp,0) = 1 THEN *-- Format: Timestamp__Text .c_TextLog = .c_TextLog + TTOC(DATETIME(),3) + ' ' @@ -6237,7 +6253,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE CREATE &tcTableOrCursor. (lcCursorName) ; ( NAME M ; - , TYPE C(1) ; + , TYPE c(1) ; , ID N(10) ; , TIMESTAMP N(10) ; , OUTFILE M ; @@ -6255,14 +6271,14 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE , OBJECT M ; , CKVAL N(6) ; , CPID N(5) ; - , OSTYPE C(4) ; - , OSCREATOR C(4) ; + , OSTYPE c(4) ; + , OSCREATOR c(4) ; , COMMENTS M ; , RESERVED1 M ; , RESERVED2 M ; , SCCDATA M ; , LOCAL L ; - , KEY C(32) ; + , KEY c(32) ; , USER M ) IF tcTableOrCursor = 'TABLE' THEN @@ -6331,8 +6347,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE lcCursorName = ICASE( tcTableOrCursor = 'TABLE', THIS.c_OutputFile, 'TABLABIN' ) CREATE &tcTableOrCursor. (lcCursorName) ; - ( PLATFORM C(8) ; - , UNIQUEID C(10) ; + ( PLATFORM c(8) ; + , UNIQUEID c(10) ; , TIMESTAMP N(10) ; , CLASS M ; , CLASSLOC M ; @@ -6393,8 +6409,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE lcCursorName = ICASE( tcTableOrCursor = 'TABLE', THIS.c_OutputFile, 'TABLABIN' ) CREATE &tcTableOrCursor. (lcCursorName) ; - ( PLATFORM C(8) ; - , UNIQUEID C(10) ; + ( PLATFORM c(8) ; + , UNIQUEID c(10) ; , TIMESTAMP N(10) ; , CLASS M ; , CLASSLOC M ; @@ -6455,8 +6471,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE lcCursorName = ICASE( tcTableOrCursor = 'TABLE', THIS.c_OutputFile, 'TABLABIN' ) CREATE &tcTableOrCursor. (lcCursorName) ; - ( 'PLATFORM' C(8) ; - , 'UNIQUEID' C(10) ; + ( 'PLATFORM' c(8) ; + , 'UNIQUEID' c(10) ; , 'TIMESTAMP' N(10) ; , 'OBJTYPE' N(2) ; , 'OBJCODE' N(3) ; @@ -6472,8 +6488,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE , 'UNIQUE' L ; , 'COMMENT' M ; , 'ENVIRON' L ; - , 'BOXCHAR' C(1) ; - , 'FILLCHAR' C(1) ; + , 'BOXCHAR' c(1) ; + , 'FILLCHAR' c(1) ; , 'TAG' M ; , 'TAG2' M NOCPTRANS ; , 'PENRED' N(5) ; @@ -7982,34 +7998,36 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE LOCAL llBloqueEncontrado - DO CASE - CASE LEFT( tcLine, 20 ) == 'PROTECTED PROCEDURE ' - *-- Estructura a reconocer: PROTECTED PROCEDURE nombre_del_procedimiento - llBloqueEncontrado = .T. - tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 21 ) ) - THIS.evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'protected', @toObjeto ) + WITH THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG' + DO CASE + CASE LEFT( tcLine, 20 ) == 'PROTECTED PROCEDURE ' + *-- Estructura a reconocer: PROTECTED PROCEDURE nombre_del_procedimiento + llBloqueEncontrado = .T. + tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 21 ) ) + .evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'protected', @toObjeto ) - CASE LEFT( tcLine, 17 ) == 'HIDDEN PROCEDURE ' - *-- Estructura a reconocer: HIDDEN PROCEDURE nombre_del_procedimiento - llBloqueEncontrado = .T. - tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 18 ) ) - THIS.evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'hidden', @toObjeto ) + CASE LEFT( tcLine, 17 ) == 'HIDDEN PROCEDURE ' + *-- Estructura a reconocer: HIDDEN PROCEDURE nombre_del_procedimiento + llBloqueEncontrado = .T. + tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 18 ) ) + .evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'hidden', @toObjeto ) - CASE LEFT( tcLine, 10 ) == 'PROCEDURE ' - *-- Estructura a reconocer: PROCEDURE [objeto.]nombre_del_procedimiento - llBloqueEncontrado = .T. - tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 11 ) ) - THIS.evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'normal', @toObjeto ) + CASE LEFT( tcLine, 10 ) == 'PROCEDURE ' + *-- Estructura a reconocer: PROCEDURE [objeto.]nombre_del_procedimiento + llBloqueEncontrado = .T. + tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 11 ) ) + .evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'normal', @toObjeto ) - ENDCASE + ENDCASE - IF llBloqueEncontrado - *-- Evalúo todo el contenido del PROCEDURE - THIS.AvanceDelProceso( 'Analyzing Procedure ' + toClase._Nombre + '.' + tcProcedureAbierto + '...', I, tnCodeLines, 1 ) - THIS.analizarLineasDeProcedure( @toClase, @toObjeto, @tcLine, @taCodeLines, @I, @tnCodeLines, @tcProcedureAbierto ; - , @tc_Comentario, @taLineasExclusion, @tnBloquesExclusion ) - ENDIF + IF llBloqueEncontrado + *-- Evalúo todo el contenido del PROCEDURE + .AvanceDelProceso( 'Analyzing Procedure ' + toClase._Nombre + '.' + tcProcedureAbierto + '...', I, tnCodeLines, 1 ) + .analizarLineasDeProcedure( @toClase, @toObjeto, @tcLine, @taCodeLines, @I, @tnCodeLines, @tcProcedureAbierto ; + , @tc_Comentario, @taLineasExclusion, @tnBloquesExclusion ) + ENDIF + ENDWITH RELEASE toModulo, toClase, toObjeto, tcLine, taCodeLines, I, tnCodeLines, tcProcedureAbierto ; , tc_Comentario, taLineasExclusion, tnBloquesExclusion @@ -12064,60 +12082,62 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE STORE '' TO lcMethods, lcLine, laCodeLines, lcMethod, lcLocation STORE 0 TO lnErrorLine, I - toEx.UserValue = toEx.UserValue + CR_LF + WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' + toEx.UserValue = toEx.UserValue + CR_LF - IF INLIST(THIS.c_Type, 'SCX', 'VCX') THEN - lcMethods = METHODS - toEx.UserValue = toEx.UserValue + 'Error location ' + '..............................' + CR_LF + IF INLIST(.c_Type, 'SCX', 'VCX') THEN + lcMethods = METHODS + toEx.UserValue = toEx.UserValue + 'Error location ' + '..............................' + CR_LF - IF NOT EMPTY(Parent) - lcLocation = lcLocation + Parent + '.' + IF NOT EMPTY(Parent) + lcLocation = lcLocation + Parent + '.' + ENDIF + + lcLocation = lcLocation + OBJNAME + + *-- Busco el Procedure si hay un n_Methods_LineNo + ALINES(laCodeLines, lcMethods) + + FOR I = .n_Methods_LineNo TO 1 STEP -1 + lcLine = LTRIM( laCodeLines(I), 0, ' ', CHR(9) ) + + DO CASE + CASE LEFT(lcLine, 10) == 'PROCEDURE ' + lcMethod = ALLTRIM( SUBSTR( lcLine, 11) ) + lnErrorLine = .n_Methods_LineNo - I + EXIT + + CASE LEFT(lcLine, 9) == 'FUNCTION ' + lcMethod = ALLTRIM( SUBSTR( lcLine, 10) ) + lnErrorLine = .n_Methods_LineNo - I + EXIT + + ENDCASE + + ENDFOR + + IF EMPTY(lcMethod) THEN + lcLocation = 'Class: ' + lcLocation + ELSE + lcLocation = 'Method: ' + lcLocation + '.' + lcMethod + ENDIF + + IF lnErrorLine > 0 THEN + lcLocation = lcLocation + ', Line ' + TRANSFORM(lnErrorLine) + ENDIF + + toEx.UserValue = toEx.UserValue + lcLocation + CR_LF + + IF .n_Methods_LineNo = 0 THEN + toEx.UserValue = toEx.UserValue + '> (no evaluated code yet)' + CR_LF + ELSE + toEx.UserValue = toEx.UserValue + '> ' + laCodeLines(.n_Methods_LineNo) + CR_LF + ENDIF ENDIF - lcLocation = lcLocation + OBJNAME - - *-- Busco el Procedure si hay un n_Methods_LineNo - ALINES(laCodeLines, lcMethods) - - FOR I = THIS.n_Methods_LineNo TO 1 STEP -1 - lcLine = LTRIM( laCodeLines(I), 0, ' ', CHR(9) ) - - DO CASE - CASE LEFT(lcLine, 10) == 'PROCEDURE ' - lcMethod = ALLTRIM( SUBSTR( lcLine, 11) ) - lnErrorLine = THIS.n_Methods_LineNo - I - EXIT - - CASE LEFT(lcLine, 9) == 'FUNCTION ' - lcMethod = ALLTRIM( SUBSTR( lcLine, 10) ) - lnErrorLine = THIS.n_Methods_LineNo - I - EXIT - - ENDCASE - - ENDFOR - - IF EMPTY(lcMethod) THEN - lcLocation = 'Class: ' + lcLocation - ELSE - lcLocation = 'Method: ' + lcLocation + '.' + lcMethod - ENDIF - - IF lnErrorLine > 0 THEN - lcLocation = lcLocation + ', Line ' + TRANSFORM(lnErrorLine) - ENDIF - - toEx.UserValue = toEx.UserValue + lcLocation + CR_LF - - IF THIS.n_Methods_LineNo = 0 THEN - toEx.UserValue = toEx.UserValue + '> (no evaluated code yet)' + CR_LF - ELSE - toEx.UserValue = toEx.UserValue + '> ' + laCodeLines(THIS.n_Methods_LineNo) + CR_LF - ENDIF - ENDIF - - toEx.UserValue = toEx.UserValue + 'Recno: ' + TRANSFORM(RECNO()) + CR_LF - toEx.UserValue = toEx.UserValue + '.............................................' + CR_LF + toEx.UserValue = toEx.UserValue + 'Recno: ' + TRANSFORM(RECNO()) + CR_LF + toEx.UserValue = toEx.UserValue + '.............................................' + CR_LF + ENDWITH ENDPROC @@ -12441,55 +12461,57 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE TRY LOCAL lcMemo, laPropsAndValues(1,2), lnPropsAndValues_Count - *-- Defino los objetos a cargar - THIS.get_PropsAndValuesFrom_PROPERTIES( toRegObj.PROPERTIES, 1, @laPropsAndValues, @lnPropsAndValues_Count, @lcMemo ) - lcMemo = THIS.set_MultilineMemoWithAddObjectProperties( @laPropsAndValues, @lnPropsAndValues_Count, C_TAB + C_TAB, .T. ) + WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' + *-- Defino los objetos a cargar + .get_PropsAndValuesFrom_PROPERTIES( toRegObj.PROPERTIES, 1, @laPropsAndValues, @lnPropsAndValues_Count, @lcMemo ) + lcMemo = .set_MultilineMemoWithAddObjectProperties( @laPropsAndValues, @lnPropsAndValues_Count, C_TAB + C_TAB, .T. ) + + IF '.' $ toRegObj.PARENT + *-- Este caso: clase.objeto.objeto ==> se quita clase + TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + <<>> ADD OBJECT '<>.<>' AS <> <<>> + ENDTEXT + ELSE + *-- Este caso: objeto + TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + <<>> ADD OBJECT '<>' AS <> <<>> + ENDTEXT + ENDIF + + IF NOT EMPTY(lcMemo) + TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + <> ; + <> + ENDTEXT + ENDIF - IF '.' $ toRegObj.PARENT - *-- Este caso: clase.objeto.objeto ==> se quita clase TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> ADD OBJECT '<>.<>' AS <> <<>> + <><> <<>> ENDTEXT - ELSE - *-- Este caso: objeto - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> ADD OBJECT '<>' AS <> <<>> - ENDTEXT - ENDIF - IF NOT EMPTY(lcMemo) - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - <> ; - <> - ENDTEXT - ENDIF + IF NOT EMPTY(toRegObj.CLASSLOC) + TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + ClassLib="<>" <<>> + ENDTEXT + ENDIF - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <><> <<>> - ENDTEXT - - IF NOT EMPTY(toRegObj.CLASSLOC) - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 - ClassLib="<>" <<>> - ENDTEXT - ENDIF - - TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 - BaseClass="<>" <<>> - ENDTEXT - - *-- Agrego metainformación para objetos OLE - IF toRegObj.BASECLASS == 'olecontrol' TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 - OLEObject="<> + ENDTEXT + ENDIF + + TEXT TO tcCodigo ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 + <> + <<>> + ENDTEXT + ENDWITH CATCH TO loEx IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 @@ -21659,43 +21681,44 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE LOCAL I, lcText, loEx AS EXCEPTION, lcField, luValue, lcFieldType lcText = '' - *** FDBOZZO 2014/07/15: New "num" property invalidates the use of REGNUM field - TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> <> - ENDTEXT - - FOR I = 1 TO tnField_Count - lcField = taFields[I, 1] - lcFieldType = taFields[I, 2] - - *** FDBOZZO 2014/07/15: Added field restrictions on binary and general fields - DO CASE - CASE lcFieldType == 'G' - luValue = 'GENERAL FIELD NOT SUPPORTED' - CASE lcFieldType == 'W' - luValue = 'BLOB FIELD NOT SUPPORTED' - CASE lcFieldType == 'Q' - luValue = 'VARBINARY FIELD NOT SUPPORTED' - OTHERWISE - luValue = EVALUATE(lcField) - ENDCASE - - DO CASE - CASE taFields[I, 2] $ 'CMV' - luValue = TRIM(luValue) - IF THIS.Encode(luValue) <> luValue - luValue = '' - ENDIF THIS.Encode(luValue) <> luValue - ENDCASE - TEXT TO lcText TEXTMERGE NOSHOW flags 1+2 PRETEXT 1+2 additive - <<>> <<'<' + lcField + '>'>><>>> + WITH THIS AS CL_DBF_RECORD OF 'FOXBIN2PRG.PRG' + *** FDBOZZO 2014/07/15: New "num" property invalidates the use of REGNUM field + TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + <<>> <> ENDTEXT - NEXT - TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 additive - <<>> <> - ENDTEXT + FOR I = 1 TO tnField_Count + lcField = taFields[I, 1] + lcFieldType = taFields[I, 2] + *** FDBOZZO 2014/07/15: Added field restrictions on binary and general fields + DO CASE + CASE lcFieldType == 'G' + luValue = 'GENERAL FIELD NOT SUPPORTED' + CASE lcFieldType == 'W' + luValue = 'BLOB FIELD NOT SUPPORTED' + CASE lcFieldType == 'Q' + luValue = 'VARBINARY FIELD NOT SUPPORTED' + OTHERWISE + luValue = EVALUATE(lcField) + ENDCASE + + DO CASE + CASE taFields[I, 2] $ 'CMV' + luValue = TRIM(luValue) + IF .Encode(luValue) <> luValue + luValue = '' + ENDIF &&.Encode(luValue) <> luValue + ENDCASE + TEXT TO lcText TEXTMERGE NOSHOW flags 1+2 PRETEXT 1+2 additive + <<>> <<'<' + lcField + '>'>><>>> + ENDTEXT + NEXT + + TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 additive + <<>> <> + ENDTEXT + ENDWITH CATCH TO loEx IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 @@ -24563,10 +24586,10 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION ENDTEXT *-- Fields - loField = THIS.FIELDS.ITEM(1) + loField = .FIELDS.ITEM(1) lcText = lcText + CR_LF + loField.toText(.T.) - FOR EACH loField AS CL_DBF_UTILS_FIELD OF 'FOXBIN2PRG.PRG' IN THIS.FIELDS + FOR EACH loField AS CL_DBF_UTILS_FIELD OF 'FOXBIN2PRG.PRG' IN .FIELDS lcText = lcText + CR_LF + loField.toText() ENDFOR