- Algunas optimizaciones WITH THIS

This commit is contained in:
fdbozzo
2015-04-07 00:45:38 +02:00
parent aa4d05af40
commit 5f6945564f
2 changed files with 286 additions and 263 deletions

Binary file not shown.

View File

@@ -486,14 +486,12 @@ IF ATC('-BIN2PRG','-'+tc_InputFile) >= 1 OR ATC('-PRG2BIN','-'+tc_InputFile) >=
ENDIF ENDIF
loCnv = CREATEOBJECT("c_foxbin2prg") loCnv = CREATEOBJECT("c_foxbin2prg")
loEx = NULL loEx = NULL
lnResp = loCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ; lnResp = loCnv.ejecutar( tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug ;
, tcDontShowProgress, NULL, @loEx, .F., tcOriginalFileName, tcRecompile, tcNoTimestamps ; , tcDontShowProgress, NULL, @loEx, .F., tcOriginalFileName, tcRecompile, tcNoTimestamps ;
, .F., .F., .F., tcCFG_File ) , .F., .F., .F., tcCFG_File )
ADDPROPERTY(_SCREEN, 'ExitCode', lnResp) ADDPROPERTY(_SCREEN, 'ExitCode', lnResp)
*SET COVERAGE TO *SET COVERAGE TO
IF _VFP.STARTMODE <> 4 && 4 = Visual FoxPro was started as a distributable .app or .exe file. 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 TRY
*-- Si o_Frm_Avance se habilit<69> de forma externa, n_ShowProgressbar podr<64>a ser 0 para controlarlo desde fuera. *-- Si o_Frm_Avance se habilit<69> de forma externa, n_ShowProgressbar podr<64>a ser 0 para controlarlo desde fuera.
IF THIS.l_ProcessFiles AND VARTYPE(THIS.o_Frm_Avance) = "O" THEN 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<61>a *-- Cuando esta rutina se invoca desde el script, este m<>todo es el #1 y no puede cancelarse todav<61>a
IF THIS.o_Frm_Avance.l_Cancelled AND PROGRAM(-1) > 1 THEN IF .o_Frm_Avance.l_Cancelled AND PROGRAM(-1) > 1 THEN
ERROR 1799 ERROR 1799
ENDIF ENDIF
THIS.o_Frm_Avance.AvanceDelProceso( tcTexto, tnValor, tnTotal, tnTipo ) .o_Frm_Avance.AvanceDelProceso( tcTexto, tnValor, tnTotal, tnTipo )
ENDIF ENDIF
ENDWITH
CATCH CATCH
THROW THROW
@@ -2888,25 +2888,27 @@ DEFINE CLASS c_foxbin2prg AS SESSION
LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG' LOCAL loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
loLang = _SCREEN.o_FoxBin2Prg_Lang loLang = _SCREEN.o_FoxBin2Prg_Lang
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
IF toEx.ErrorNo = 1799 THEN && Conversion Cancelled IF toEx.ErrorNo = 1799 THEN && Conversion Cancelled
tcErrorInfo = loLang.C_CONVERSION_CANCELLED_BY_USER_LOC tcErrorInfo = loLang.C_CONVERSION_CANCELLED_BY_USER_LOC
ELSE ELSE
tcErrorInfo = THIS.Exception2Str(@toEx) + CR_LF + loLang.C_SOURCEFILE_LOC + TRANSFORM(THIS.c_InputFile) + CR_LF tcErrorInfo = .Exception2Str(@toEx) + CR_LF + loLang.C_SOURCEFILE_LOC + TRANSFORM(.c_InputFile) + CR_LF
ENDIF ENDIF
ADDPROPERTY(_SCREEN, 'ExitCode', toEx.ERRORNO) ADDPROPERTY(_SCREEN, 'ExitCode', toEx.ERRORNO)
*-- Escribo la informaci<63>n de error en la variable log de errores *-- Escribo la informaci<63>n de error en la variable log de errores
THIS.writeErrorLog( REPLICATE('-', 100), 1 ) .writeErrorLog( REPLICATE('-', 100), 1 )
THIS.writeLog( tcErrorInfo ) .writeLog( tcErrorInfo )
THIS.writeErrorLog( tcErrorInfo ) .writeErrorLog( tcErrorInfo )
THIS.writeErrorLog( ) .writeErrorLog( )
*-- Escribo la informaci<63>n de error en el archivo log de errores *-- Escribo la informaci<63>n de error en el archivo log de errores
TRY TRY
STRTOFILE( tcErrorInfo, EVL( THIS.c_InputFile, 'foxbin2prg_errorlog' ) + '.ERR' ) STRTOFILE( tcErrorInfo, EVL( .c_InputFile, 'foxbin2prg_errorlog' ) + '.ERR' )
CATCH CATCH
ENDTRY ENDTRY
ENDWITH
RETURN RETURN
ENDPROC ENDPROC
@@ -3472,8 +3474,9 @@ DEFINE CLASS c_foxbin2prg AS SESSION
tcDir = ADDBS(tcDir) tcDir = ADDBS(tcDir)
IF DIRECTORY(tcDir) IF DIRECTORY(tcDir)
WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
loLang = _SCREEN.o_FoxBin2Prg_Lang loLang = _SCREEN.o_FoxBin2Prg_Lang
THIS.AvanceDelProceso( loLang.C_SCANNING_FILE_AND_DIR_INFO_LOC + ' ' + tcDir + '...', 0, 0, 0 ) .AvanceDelProceso( loLang.C_SCANNING_FILE_AND_DIR_INFO_LOC + ' ' + tcDir + '...', 0, 0, 0 )
lnFiles = ADIR( laFiles, tcDir + '*.*', 'D', 1) lnFiles = ADIR( laFiles, tcDir + '*.*', 'D', 1)
*-- Busco los archivos *-- Busco los archivos
@@ -3491,8 +3494,9 @@ DEFINE CLASS c_foxbin2prg AS SESSION
IF NOT SUBSTR( laFiles(I,5), 5, 1 ) == 'D' OR LEFT(laFiles(I,1), 1) == '.' IF NOT SUBSTR( laFiles(I,5), 5, 1 ) == 'D' OR LEFT(laFiles(I,1), 1) == '.'
LOOP LOOP
ENDIF ENDIF
THIS.ObtenerArchivosDelDirectorio( tcDir + laFiles(I,1), @taFiles, @lnFileCount ) .ObtenerArchivosDelDirectorio( tcDir + laFiles(I,1), @taFiles, @lnFileCount )
ENDFOR ENDFOR
ENDWITH
ENDIF ENDIF
ENDPROC ENDPROC
@@ -3542,16 +3546,18 @@ DEFINE CLASS c_foxbin2prg AS SESSION
LOCAL lcLog, laFile(1,5) ; LOCAL lcLog, laFile(1,5) ;
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG' , loLang as CL_LANG OF 'FOXBIN2PRG.PRG'
loLang = _SCREEN.o_FoxBin2Prg_Lang 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 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) lcLog = SUBSTR(lcLog,3)
THIS.writeLog() .writeLog()
THIS.writeLog( C_TAB + TEXTMERGE(loLang.C_REQUESTING_CAPITALIZATION_OF_FILE_LOC) ) .writeLog( C_TAB + TEXTMERGE(loLang.C_REQUESTING_CAPITALIZATION_OF_FILE_LOC) )
THIS.writeLog( lcLog ) .writeLog( lcLog )
ENDIF ENDIF
ENDWITH
ENDPROC ENDPROC
@@ -3712,10 +3718,12 @@ DEFINE CLASS c_foxbin2prg AS SESSION
PROCEDURE writeErrorLog_Flush PROCEDURE writeErrorLog_Flush
IF NOT EMPTY(THIS.c_TextErr) WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
STRTOFILE( THIS.c_TextErr + CR_LF, THIS.c_ErrorLogFile, 1 ) IF NOT EMPTY(.c_TextErr)
STRTOFILE( .c_TextErr + CR_LF, .c_ErrorLogFile, 1 )
ENDIF ENDIF
THIS.c_TextErr = '' .c_TextErr = ''
ENDWITH
ENDPROC ENDPROC
@@ -3746,10 +3754,12 @@ DEFINE CLASS c_foxbin2prg AS SESSION
PROCEDURE writeLog_Flush PROCEDURE writeLog_Flush
IF THIS.n_Debug > 0 AND NOT EMPTY(THIS.c_TextLog) WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG'
STRTOFILE( THIS.c_TextLog + CR_LF, THIS.c_LogFile, 1 ) IF .n_Debug > 0 AND NOT EMPTY(.c_TextLog)
STRTOFILE( .c_TextLog + CR_LF, .c_LogFile, 1 )
ENDIF ENDIF
THIS.c_TextLog = '' .c_TextLog = ''
ENDWITH
ENDPROC ENDPROC
@@ -4982,11 +4992,12 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
LOCAL lcTimeStamp,lnYear,lnMonth,lnDay,lnHour,lnMinutes,lnSeconds,lcTime,lnHour,ltTimeStamp,lnResto ; LOCAL lcTimeStamp,lnYear,lnMonth,lnDay,lnHour,lnMinutes,lnSeconds,lcTime,lnHour,ltTimeStamp,lnResto ;
,lcTimeStamp_Ret, laDirInfo[1,5], loEx AS EXCEPTION ,lcTimeStamp_Ret, laDirInfo[1,5], loEx AS EXCEPTION
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG'
lcTimeStamp_Ret = '' lcTimeStamp_Ret = ''
IF EMPTY(tnTimestamp) IF EMPTY(tnTimestamp)
IF THIS.lFileMode IF .lFileMode
IF ADIR(laDirInfo,THIS.c_InputFile)=0 IF ADIR(laDirInfo,.c_InputFile)=0
EXIT EXIT
ENDIF ENDIF
@@ -5002,7 +5013,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
EXIT EXIT
ENDIF ENDIF
tnTimestamp = THIS.n_ClassTimeStamp tnTimestamp = .n_ClassTimeStamp
IF EMPTY(tnTimestamp) IF EMPTY(tnTimestamp)
EXIT EXIT
@@ -5029,6 +5040,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
ltTimeStamp = EVALUATE( "{^" + lcTimeStamp + "}" ) ltTimeStamp = EVALUATE( "{^" + lcTimeStamp + "}" )
lcTimeStamp_Ret = TTOC( ltTimeStamp ) lcTimeStamp_Ret = TTOC( ltTimeStamp )
ENDWITH
CATCH TO loEx CATCH TO loEx
IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0
@@ -5370,10 +5382,14 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
PROCEDURE normalizarAsignacion PROCEDURE normalizarAsignacion
LPARAMETERS tcAsignacion, tcComentario LPARAMETERS tcAsignacion, tcComentario
LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos LOCAL lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos
THIS.get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor )
WITH THIS AS C_CONVERSOR_BASE OF 'FOXBIN2PRG.PRG'
.get_SeparatedPropAndValue( @tcAsignacion, @lcPropName, @lcValor )
tcComentario = '' tcComentario = ''
THIS.normalizarValorPropiedad( @lcPropName, @lcValor, @tcComentario ) .normalizarValorPropiedad( @lcPropName, @lcValor, @tcComentario )
tcAsignacion = lcPropName + ' = ' + lcValor tcAsignacion = lcPropName + ' = ' + lcValor
ENDWITH
RELEASE tcComentario, lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos RELEASE tcComentario, lcPropName, lcValor, lnCodError, lcExpNormalizada, lnPos
RETURN tcAsignacion RETURN tcAsignacion
ENDPROC ENDPROC
@@ -6031,7 +6047,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
LPARAMETERS tcText, tnTimestamp LPARAMETERS tcText, tnTimestamp
TRY 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 IF EVL(tnTimestamp,0) = 1 THEN
*-- Format: Timestamp__Text *-- Format: Timestamp__Text
.c_TextLog = .c_TextLog + TTOC(DATETIME(),3) + ' ' .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) ; CREATE &tcTableOrCursor. (lcCursorName) ;
( NAME M ; ( NAME M ;
, TYPE C(1) ; , TYPE c(1) ;
, ID N(10) ; , ID N(10) ;
, TIMESTAMP N(10) ; , TIMESTAMP N(10) ;
, OUTFILE M ; , OUTFILE M ;
@@ -6255,14 +6271,14 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE
, OBJECT M ; , OBJECT M ;
, CKVAL N(6) ; , CKVAL N(6) ;
, CPID N(5) ; , CPID N(5) ;
, OSTYPE C(4) ; , OSTYPE c(4) ;
, OSCREATOR C(4) ; , OSCREATOR c(4) ;
, COMMENTS M ; , COMMENTS M ;
, RESERVED1 M ; , RESERVED1 M ;
, RESERVED2 M ; , RESERVED2 M ;
, SCCDATA M ; , SCCDATA M ;
, LOCAL L ; , LOCAL L ;
, KEY C(32) ; , KEY c(32) ;
, USER M ) , USER M )
IF tcTableOrCursor = 'TABLE' THEN 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' ) lcCursorName = ICASE( tcTableOrCursor = 'TABLE', THIS.c_OutputFile, 'TABLABIN' )
CREATE &tcTableOrCursor. (lcCursorName) ; CREATE &tcTableOrCursor. (lcCursorName) ;
( PLATFORM C(8) ; ( PLATFORM c(8) ;
, UNIQUEID C(10) ; , UNIQUEID c(10) ;
, TIMESTAMP N(10) ; , TIMESTAMP N(10) ;
, CLASS M ; , CLASS M ;
, CLASSLOC 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' ) lcCursorName = ICASE( tcTableOrCursor = 'TABLE', THIS.c_OutputFile, 'TABLABIN' )
CREATE &tcTableOrCursor. (lcCursorName) ; CREATE &tcTableOrCursor. (lcCursorName) ;
( PLATFORM C(8) ; ( PLATFORM c(8) ;
, UNIQUEID C(10) ; , UNIQUEID c(10) ;
, TIMESTAMP N(10) ; , TIMESTAMP N(10) ;
, CLASS M ; , CLASS M ;
, CLASSLOC 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' ) lcCursorName = ICASE( tcTableOrCursor = 'TABLE', THIS.c_OutputFile, 'TABLABIN' )
CREATE &tcTableOrCursor. (lcCursorName) ; CREATE &tcTableOrCursor. (lcCursorName) ;
( 'PLATFORM' C(8) ; ( 'PLATFORM' c(8) ;
, 'UNIQUEID' C(10) ; , 'UNIQUEID' c(10) ;
, 'TIMESTAMP' N(10) ; , 'TIMESTAMP' N(10) ;
, 'OBJTYPE' N(2) ; , 'OBJTYPE' N(2) ;
, 'OBJCODE' N(3) ; , 'OBJCODE' N(3) ;
@@ -6472,8 +6488,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE
, 'UNIQUE' L ; , 'UNIQUE' L ;
, 'COMMENT' M ; , 'COMMENT' M ;
, 'ENVIRON' L ; , 'ENVIRON' L ;
, 'BOXCHAR' C(1) ; , 'BOXCHAR' c(1) ;
, 'FILLCHAR' C(1) ; , 'FILLCHAR' c(1) ;
, 'TAG' M ; , 'TAG' M ;
, 'TAG2' M NOCPTRANS ; , 'TAG2' M NOCPTRANS ;
, 'PENRED' N(5) ; , 'PENRED' N(5) ;
@@ -7982,34 +7998,36 @@ DEFINE CLASS c_conversor_prg_a_bin AS C_CONVERSOR_BASE
LOCAL llBloqueEncontrado LOCAL llBloqueEncontrado
WITH THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG'
DO CASE DO CASE
CASE LEFT( tcLine, 20 ) == 'PROTECTED PROCEDURE ' CASE LEFT( tcLine, 20 ) == 'PROTECTED PROCEDURE '
*-- Estructura a reconocer: PROTECTED PROCEDURE nombre_del_procedimiento *-- Estructura a reconocer: PROTECTED PROCEDURE nombre_del_procedimiento
llBloqueEncontrado = .T. llBloqueEncontrado = .T.
tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 21 ) ) tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 21 ) )
THIS.evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'protected', @toObjeto ) .evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'protected', @toObjeto )
CASE LEFT( tcLine, 17 ) == 'HIDDEN PROCEDURE ' CASE LEFT( tcLine, 17 ) == 'HIDDEN PROCEDURE '
*-- Estructura a reconocer: HIDDEN PROCEDURE nombre_del_procedimiento *-- Estructura a reconocer: HIDDEN PROCEDURE nombre_del_procedimiento
llBloqueEncontrado = .T. llBloqueEncontrado = .T.
tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 18 ) ) tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 18 ) )
THIS.evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'hidden', @toObjeto ) .evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'hidden', @toObjeto )
CASE LEFT( tcLine, 10 ) == 'PROCEDURE ' CASE LEFT( tcLine, 10 ) == 'PROCEDURE '
*-- Estructura a reconocer: PROCEDURE [objeto.]nombre_del_procedimiento *-- Estructura a reconocer: PROCEDURE [objeto.]nombre_del_procedimiento
llBloqueEncontrado = .T. llBloqueEncontrado = .T.
tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 11 ) ) tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 11 ) )
THIS.evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'normal', @toObjeto ) .evaluarDefinicionDeProcedure( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'normal', @toObjeto )
ENDCASE ENDCASE
IF llBloqueEncontrado IF llBloqueEncontrado
*-- Eval<61>o todo el contenido del PROCEDURE *-- Eval<61>o todo el contenido del PROCEDURE
THIS.AvanceDelProceso( 'Analyzing Procedure ' + toClase._Nombre + '.' + tcProcedureAbierto + '...', I, tnCodeLines, 1 ) .AvanceDelProceso( 'Analyzing Procedure ' + toClase._Nombre + '.' + tcProcedureAbierto + '...', I, tnCodeLines, 1 )
THIS.analizarLineasDeProcedure( @toClase, @toObjeto, @tcLine, @taCodeLines, @I, @tnCodeLines, @tcProcedureAbierto ; .analizarLineasDeProcedure( @toClase, @toObjeto, @tcLine, @taCodeLines, @I, @tnCodeLines, @tcProcedureAbierto ;
, @tc_Comentario, @taLineasExclusion, @tnBloquesExclusion ) , @tc_Comentario, @taLineasExclusion, @tnBloquesExclusion )
ENDIF ENDIF
ENDWITH
RELEASE toModulo, toClase, toObjeto, tcLine, taCodeLines, I, tnCodeLines, tcProcedureAbierto ; RELEASE toModulo, toClase, toObjeto, tcLine, taCodeLines, I, tnCodeLines, tcProcedureAbierto ;
, tc_Comentario, taLineasExclusion, tnBloquesExclusion , tc_Comentario, taLineasExclusion, tnBloquesExclusion
@@ -12064,9 +12082,10 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
STORE '' TO lcMethods, lcLine, laCodeLines, lcMethod, lcLocation STORE '' TO lcMethods, lcLine, laCodeLines, lcMethod, lcLocation
STORE 0 TO lnErrorLine, I STORE 0 TO lnErrorLine, I
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
toEx.UserValue = toEx.UserValue + CR_LF toEx.UserValue = toEx.UserValue + CR_LF
IF INLIST(THIS.c_Type, 'SCX', 'VCX') THEN IF INLIST(.c_Type, 'SCX', 'VCX') THEN
lcMethods = METHODS lcMethods = METHODS
toEx.UserValue = toEx.UserValue + 'Error location ' + '..............................' + CR_LF toEx.UserValue = toEx.UserValue + 'Error location ' + '..............................' + CR_LF
@@ -12079,18 +12098,18 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
*-- Busco el Procedure si hay un n_Methods_LineNo *-- Busco el Procedure si hay un n_Methods_LineNo
ALINES(laCodeLines, lcMethods) ALINES(laCodeLines, lcMethods)
FOR I = THIS.n_Methods_LineNo TO 1 STEP -1 FOR I = .n_Methods_LineNo TO 1 STEP -1
lcLine = LTRIM( laCodeLines(I), 0, ' ', CHR(9) ) lcLine = LTRIM( laCodeLines(I), 0, ' ', CHR(9) )
DO CASE DO CASE
CASE LEFT(lcLine, 10) == 'PROCEDURE ' CASE LEFT(lcLine, 10) == 'PROCEDURE '
lcMethod = ALLTRIM( SUBSTR( lcLine, 11) ) lcMethod = ALLTRIM( SUBSTR( lcLine, 11) )
lnErrorLine = THIS.n_Methods_LineNo - I lnErrorLine = .n_Methods_LineNo - I
EXIT EXIT
CASE LEFT(lcLine, 9) == 'FUNCTION ' CASE LEFT(lcLine, 9) == 'FUNCTION '
lcMethod = ALLTRIM( SUBSTR( lcLine, 10) ) lcMethod = ALLTRIM( SUBSTR( lcLine, 10) )
lnErrorLine = THIS.n_Methods_LineNo - I lnErrorLine = .n_Methods_LineNo - I
EXIT EXIT
ENDCASE ENDCASE
@@ -12109,15 +12128,16 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
toEx.UserValue = toEx.UserValue + lcLocation + CR_LF toEx.UserValue = toEx.UserValue + lcLocation + CR_LF
IF THIS.n_Methods_LineNo = 0 THEN IF .n_Methods_LineNo = 0 THEN
toEx.UserValue = toEx.UserValue + '> (no evaluated code yet)' + CR_LF toEx.UserValue = toEx.UserValue + '> (no evaluated code yet)' + CR_LF
ELSE ELSE
toEx.UserValue = toEx.UserValue + '> ' + laCodeLines(THIS.n_Methods_LineNo) + CR_LF toEx.UserValue = toEx.UserValue + '> ' + laCodeLines(.n_Methods_LineNo) + CR_LF
ENDIF ENDIF
ENDIF ENDIF
toEx.UserValue = toEx.UserValue + 'Recno: ' + TRANSFORM(RECNO()) + CR_LF toEx.UserValue = toEx.UserValue + 'Recno: ' + TRANSFORM(RECNO()) + CR_LF
toEx.UserValue = toEx.UserValue + '.............................................' + CR_LF toEx.UserValue = toEx.UserValue + '.............................................' + CR_LF
ENDWITH
ENDPROC ENDPROC
@@ -12441,9 +12461,10 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
TRY TRY
LOCAL lcMemo, laPropsAndValues(1,2), lnPropsAndValues_Count LOCAL lcMemo, laPropsAndValues(1,2), lnPropsAndValues_Count
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
*-- Defino los objetos a cargar *-- Defino los objetos a cargar
THIS.get_PropsAndValuesFrom_PROPERTIES( toRegObj.PROPERTIES, 1, @laPropsAndValues, @lnPropsAndValues_Count, @lcMemo ) .get_PropsAndValuesFrom_PROPERTIES( toRegObj.PROPERTIES, 1, @laPropsAndValues, @lnPropsAndValues_Count, @lcMemo )
lcMemo = THIS.set_MultilineMemoWithAddObjectProperties( @laPropsAndValues, @lnPropsAndValues_Count, C_TAB + C_TAB, .T. ) lcMemo = .set_MultilineMemoWithAddObjectProperties( @laPropsAndValues, @lnPropsAndValues_Count, C_TAB + C_TAB, .T. )
IF '.' $ toRegObj.PARENT IF '.' $ toRegObj.PARENT
*-- Este caso: clase.objeto.objeto ==> se quita clase *-- Este caso: clase.objeto.objeto ==> se quita clase
@@ -12490,6 +12511,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS C_CONVERSOR_BASE
<<C_END_OBJECT_F>> <<C_END_OBJECT_F>>
<<>> <<>>
ENDTEXT ENDTEXT
ENDWITH
CATCH TO loEx CATCH TO loEx
IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0
@@ -21659,6 +21681,7 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
LOCAL I, lcText, loEx AS EXCEPTION, lcField, luValue, lcFieldType LOCAL I, lcText, loEx AS EXCEPTION, lcField, luValue, lcFieldType
lcText = '' lcText = ''
WITH THIS AS CL_DBF_RECORD OF 'FOXBIN2PRG.PRG'
*** FDBOZZO 2014/07/15: New "num" property invalidates the use of REGNUM field *** FDBOZZO 2014/07/15: New "num" property invalidates the use of REGNUM field
TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
<<>> <<STRTRAN( C_RECORD_I, '##', TRANSFORM(RECNO()) )>> <<>> <<STRTRAN( C_RECORD_I, '##', TRANSFORM(RECNO()) )>>
@@ -21683,9 +21706,9 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
DO CASE DO CASE
CASE taFields[I, 2] $ 'CMV' CASE taFields[I, 2] $ 'CMV'
luValue = TRIM(luValue) luValue = TRIM(luValue)
IF THIS.Encode(luValue) <> luValue IF .Encode(luValue) <> luValue
luValue = '<![CDATA[' + luValue + ']]>' luValue = '<![CDATA[' + luValue + ']]>'
ENDIF THIS.Encode(luValue) <> luValue ENDIF &&.Encode(luValue) <> luValue
ENDCASE ENDCASE
TEXT TO lcText TEXTMERGE NOSHOW flags 1+2 PRETEXT 1+2 additive TEXT TO lcText TEXTMERGE NOSHOW flags 1+2 PRETEXT 1+2 additive
<<>> <<'<' + lcField + '>'>><<luValue>></<<lcField>>> <<>> <<'<' + lcField + '>'>><<luValue>></<<lcField>>>
@@ -21695,7 +21718,7 @@ DEFINE CLASS CL_DBF_RECORD AS CL_CUS_BASE
TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 additive TEXT TO lcText TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 additive
<<>> <<C_RECORD_F>> <<>> <<C_RECORD_F>>
ENDTEXT ENDTEXT
ENDWITH
CATCH TO loEx CATCH TO loEx
IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0 IF THIS.n_Debug > 0 AND _VFP.STARTMODE = 0
@@ -24563,10 +24586,10 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION
ENDTEXT ENDTEXT
*-- Fields *-- Fields
loField = THIS.FIELDS.ITEM(1) loField = .FIELDS.ITEM(1)
lcText = lcText + CR_LF + loField.toText(.T.) 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() lcText = lcText + CR_LF + loField.toText()
ENDFOR ENDFOR