From fef17685b3810d1e77fb0239f64c5b3c62fadb0c Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Sat, 17 May 2014 01:41:31 +0200 Subject: [PATCH] =?UTF-8?q?Changeset:=20248=20fdbozzo=20-=2016/05/2014=201?= =?UTF-8?q?7:31:42:=20-=20Optimizaci=C3=B3n=20en=20garbage=20collect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 812 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 568 insertions(+), 244 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 7ec9e3b..603b34a 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -546,7 +546,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM lcFileCDX = FORCEPATH( "TABLABIN.CDX", JUSTPATH(THIS.c_InputFile) ) *IF FILE( lcFileCDX ) - ERASE ( lcFileCDX ) + ERASE ( lcFileCDX ) *ENDIF THIS.writeLog_Flush() @@ -578,7 +578,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM #DEFINE FILE_ATTRIBUTE_COMPRESSED 2048 TRY - LOCAL loEx as Exception, dwFileAttributes + LOCAL loEx AS EXCEPTION, dwFileAttributes DECLARE SHORT 'SetFileAttributes' IN kernel32 AS 'fb2p_SetFileAttributes' STRING tcFileName, INTEGER dwFileAttributes DECLARE INTEGER 'GetFileAttributes' IN kernel32 AS 'fb2p_GetFileAttributes' STRING tcFileName @@ -644,7 +644,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * setting selected attributes =fb2p_SetFileAttributes(tcFileName, dwFileAttributes) ENDIF - + CATCH TO loEx THROW @@ -1627,7 +1627,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ******************************************************************************************************************* PROCEDURE normalizarCapitalizacionArchivos TRY - LOCAL lcPath, lcEXE_CAPS, lcOutputFile ; + LOCAL lcPath, lcEXE_CAPS, lcOutputFile, loEx AS EXCEPTION ; , loFSO AS Scripting.FileSystemObject WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' @@ -1694,6 +1694,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDCASE ENDWITH && THIS + + CATCH TO loEx + THROW + + FINALLY + loFSO = NULL + ENDTRY RETURN @@ -2051,6 +2058,8 @@ DEFINE CLASS c_conversor_base AS SESSION lnObjeto = I EXIT ENDIF + + loObjeto = NULL ENDFOR IF lnObjeto > 0 EXIT @@ -2340,7 +2349,6 @@ DEFINE CLASS c_conversor_base AS SESSION IF ln_AT_Cmt > 0 tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - *tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, ' ', CHR(9) ) && Quito espacios y TABS tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9) ) && Quito TABS ENDIF @@ -2604,25 +2612,25 @@ DEFINE CLASS c_conversor_base AS SESSION CASE .c_ClaseActual == 'formset' lnPos = ASCAN( .a_SpecialProps_Frs, lcPropName, 1, 0, 1, 1+2+4 ) - *-- Comento la clase grid, porque puede contener a todos los controles, como un form - *CASE .c_ClaseActual == 'grid' - * lnPos = ASCAN( .a_SpecialProps_Grd, lcPropName, 1, 0, 1, 1+2+4 ) + *-- Comento la clase grid, porque puede contener a todos los controles, como un form + *CASE .c_ClaseActual == 'grid' + * lnPos = ASCAN( .a_SpecialProps_Grd, lcPropName, 1, 0, 1, 1+2+4 ) - *-- Comento la clase form, porque puede contener a todos los controles, como un form - *CASE .c_ClaseActual == 'form' - * lnPos = ASCAN( .a_SpecialProps_Frm, lcPropName, 1, 0, 1, 1+2+4 ) + *-- Comento la clase form, porque puede contener a todos los controles, como un form + *CASE .c_ClaseActual == 'form' + * lnPos = ASCAN( .a_SpecialProps_Frm, lcPropName, 1, 0, 1, 1+2+4 ) - *-- Comento la clase pageframe, porque puede contener a todos los controles, como un form - *CASE .c_ClaseActual == 'pageframe' - * lnPos = ASCAN( .a_SpecialProps_Pgf, lcPropName, 1, 0, 1, 1+2+4 ) + *-- Comento la clase pageframe, porque puede contener a todos los controles, como un form + *CASE .c_ClaseActual == 'pageframe' + * lnPos = ASCAN( .a_SpecialProps_Pgf, lcPropName, 1, 0, 1, 1+2+4 ) - *-- Comento la clase control, porque puede contener a todos los controles, como un form - *CASE .c_ClaseActual == 'control' - * lnPos = ASCAN( .a_SpecialProps_Ctl, lcPropName, 1, 0, 1, 1+2+4 ) + *-- Comento la clase control, porque puede contener a todos los controles, como un form + *CASE .c_ClaseActual == 'control' + * lnPos = ASCAN( .a_SpecialProps_Ctl, lcPropName, 1, 0, 1, 1+2+4 ) - *-- Comento la clase container, porque puede contener a todos los controles, como un form - *CASE .c_ClaseActual == 'container' - * lnPos = ASCAN( .a_SpecialProps_Cnt, lcPropName, 1, 0, 1, 1+2+4 ) + *-- Comento la clase container, porque puede contener a todos los controles, como un form + *CASE .c_ClaseActual == 'container' + * lnPos = ASCAN( .a_SpecialProps_Cnt, lcPropName, 1, 0, 1, 1+2+4 ) CASE .c_ClaseActual == 'column' lnPos = ASCAN( .a_SpecialProps_Grc, lcPropName, 1, 0, 1, 1+2+4 ) @@ -2678,15 +2686,15 @@ DEFINE CLASS c_conversor_base AS SESSION CASE .c_ClaseActual == 'timer' lnPos = ASCAN( .a_SpecialProps_Tmr, lcPropName, 1, 0, 1, 1+2+4 ) - *-- Comento la clase toolbar, porque puede contener a todos los controles, como un form - *CASE .c_ClaseActual == 'toolbar' - * lnPos = ASCAN( .a_SpecialProps_Tbr, lcPropName, 1, 0, 1, 1+2+4 ) + *-- Comento la clase toolbar, porque puede contener a todos los controles, como un form + *CASE .c_ClaseActual == 'toolbar' + * lnPos = ASCAN( .a_SpecialProps_Tbr, lcPropName, 1, 0, 1, 1+2+4 ) CASE .c_ClaseActual == 'xmladapter' lnPos = ASCAN( .a_SpecialProps_XMLAda, lcPropName, 1, 0, 1, 1+2+4 ) CASE .c_ClaseActual == 'xmlfield' - lnPos = ASCAN( .a_SpecialProps_Fld, lcPropName, 1, 0, 1, 1+2+4 ) + lnPos = ASCAN( .a_SpecialProps_XMLFld, lcPropName, 1, 0, 1, 1+2+4 ) CASE .c_ClaseActual == 'xmltable' lnPos = ASCAN( .a_SpecialProps_XMLTbl, lcPropName, 1, 0, 1, 1+2+4 ) @@ -2840,7 +2848,7 @@ DEFINE CLASS c_conversor_base AS SESSION - PROCEDURE SortSpecialProps + PROCEDURE SortSpecialProps TRY LOCAL I, loEx AS EXCEPTION, lcPropsFile lcPropsFile = '' @@ -2852,7 +2860,7 @@ DEFINE CLASS c_conversor_base AS SESSION lcPropsFile = FORCEPATH( "props_all.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps, FILETOSTR( lcPropsFile ), 1+4 ) - lcPropsFile = FORCEPATH( "props_checkbox.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) + lcPropsFile = FORCEPATH( "props_checkbox.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Chk, FILETOSTR( lcPropsFile ), 1+4 ) lcPropsFile = FORCEPATH( "props_collection.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) @@ -2860,101 +2868,101 @@ DEFINE CLASS c_conversor_base AS SESSION lcPropsFile = FORCEPATH( "props_combobox.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Cbo, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_commandgroup.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Cmg, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_commandbutton.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Cmd, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_cursor.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Cur, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_cursoradapter.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_CA, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_dataenvironment.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_DE, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_editbox.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Edt, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_formset.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Frs, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_grid.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Grd, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_grid_column.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Grc, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_grid_header.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Grh, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_hyperlink.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Hlk, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_image.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Img, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_label.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Lbl, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_line.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Lin, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_listbox.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Lst, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_olebound.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Ole, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_optiongroup.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Opg, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_optiongroup_option.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Opb, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_projecthook.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Phk, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_relation.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Rel, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_reportlistener.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Rls, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_separator.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Sep, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_shape.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Shp, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_spinner.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Spn, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_textbox.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Txt, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_timer.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Tmr, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_toolbar.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_Tbr, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_xmladapter.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_XMLAda, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_xmladapter.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_XMLAda, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_xmlfield.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_XMLFld, FILETOSTR( lcPropsFile ), 1+4 ) - + lcPropsFile = FORCEPATH( "props_xmltable.txt", JUSTPATH( .c_Foxbin2prg_FullPath ) ) I = ALINES( .a_SpecialProps_XMLTbl, FILETOSTR( lcPropsFile ), 1+4 ) - ENDWITH + ENDWITH CATCH TO loEx loEx.USERVALUE = 'lcPropsFile = ' + lcPropsFile @@ -3896,6 +3904,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base lcComentario = '' FOR I = 1 TO toClase._Procedure_Count + loProcedure = NULL loProcedure = toClase._Procedures(I) IF loProcedure._Nombre == tcMethodName @@ -3904,6 +3913,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ENDIF ENDFOR + loProcedure = NULL + RELEASE loProcedure + RETURN lcComentario ENDPROC @@ -4081,6 +4093,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base TRY LOCAL N, X, lcObjName, loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG' + loObjeto = NULL WITH THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG' IF toClase._AddObject_Count > 0 @@ -4093,6 +4106,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base loObjeto = toClase._AddObjects( X ) laObjNames( X, 1 ) = loObjeto._Nombre laObjNames( X, 2 ) = loObjeto._ZOrder + loObjeto = NULL ENDFOR ASORT( laObjNames, 2, -1, 0, 1 ) @@ -4131,6 +4145,10 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base THROW + FINALLY + loObjeto = NULL + RELEASE loObjeto + ENDTRY RETURN @@ -4157,6 +4175,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base TRY LOCAL llEsProcedureDeClase, loProcedure AS CL_PROCEDURE OF 'FOXBIN2PRG.PRG' + loProcedure = NULL IF '.' $ tcProcedureAbierto AND VARTYPE(toObjeto) = 'O' AND toObjeto._Procedure_Count > 0 loProcedure = toObjeto._Procedures(toObjeto._Procedure_Count) @@ -4211,6 +4230,10 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base THROW + FINALLY + loProcedure = NULL + RELEASE loProcedure + ENDTRY RETURN @@ -4784,6 +4807,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base llBloqueEncontrado = .T. toClase.l_ObjectMetadataInHeader = .T. + loObjeto = NULL loObjeto = CREATEOBJECT('CL_OBJETO') toClase.add_Object( loObjeto ) @@ -4793,6 +4817,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base loObjeto._TimeStamp = INT( .RowTimeStamp( .get_ValueByName_FromListNamesWithValues( 'TimeStamp', 'T', @laPropsAndValues ) ) ) loObjeto._UniqueID = .get_ValueByName_FromListNamesWithValues( 'UniqueID', 'C', @laPropsAndValues ) ENDWITH && THIS + + loObjeto = NULL + RELEASE laPropsAndValues, lnPropsAndValues_Count, loObjeto ENDIF RETURN llBloqueEncontrado @@ -4841,7 +4868,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ENDIF loOle = NULL - RELEASE loOle + RELEASE loOle, laPropsAndValues, lnPropsAndValues_Count ENDIF RETURN llBloqueEncontrado @@ -4930,6 +4957,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base toClase._Ini_Cuerpo = tnX ENDIF + loProcedure = NULL loProcedure = CREATEOBJECT("CL_PROCEDURE") loProcedure._Nombre = tcProcName loProcedure._ProcType = tcProcType @@ -4976,7 +5004,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base FINALLY STORE NULL TO loProcedure - RELEASE loProcedure + RELEASE loProcedure, I, lcNombreObjeto, lnObjProc ENDTRY @@ -5065,7 +5093,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base FINALLY STORE NULL TO loClase - RELEASE loClase + RELEASE loClase, I ; + , llFoxBin2Prg_Completed, llOLE_DEF_Completed, llINCLUDE_SCX_Completed, llLIBCOMMENT_Completed ; + , lc_Comentario, lcProcedureAbierto, lcLine ENDTRY RETURN @@ -5099,13 +5129,13 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin DODEFAULT( @toModulo, @toEx ) TRY - LOCAL lnCodError, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; + LOCAL lnCodError, lcLine, laCodeLines(1), lnCodeLines ; , laBloquesExclusion(1,2), lnBloquesExclusion, I WITH THIS AS c_conversor_prg_a_vcx OF 'FOXBIN2PRG.PRG' - STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version - STORE '' TO lcLine, lcSourceFile - STORE NULL TO loReg, toModulo + STORE 0 TO lnCodError, lnCodeLines + STORE '' TO lcLine + STORE NULL TO toModulo C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) @@ -5134,6 +5164,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin FINALLY USE IN (SELECT("TABLABIN")) + RELEASE lnCodError, lcLine, laCodeLines, lnCodeLines, laBloquesExclusion, lnBloquesExclusion, I ENDTRY RETURN @@ -5216,10 +5247,10 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin TRY LOCAL lcObjName, lnCodError, I, X, loEx AS EXCEPTION ; , loClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ; - , loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG' ; , loFSO AS Scripting.FileSystemObject WITH THIS AS c_conversor_prg_a_vcx OF 'FOXBIN2PRG.PRG' + STORE NULL TO loFSO, loClase loFSO = .oFSO *-- Creo el registro de cabecera @@ -5229,7 +5260,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin *-- Recorro las CLASES FOR X = 1 TO 2 FOR I = 1 TO toModulo._Clases_Count - + loClase = NULL loClase = toModulo._Clases(I) *-- El dataenvironment debe estar primero, luego lo demás. @@ -5360,6 +5391,8 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin FINALLY USE IN (SELECT("TABLABIN")) + STORE NULL TO loFSO, loClase + RELEASE lcObjName, I, X, loClase, loFSO ENDTRY @@ -5393,13 +5426,12 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin DODEFAULT( @toModulo, @toEx ) TRY - LOCAL lnCodError, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; + LOCAL lnCodError, laCodeLines(1), lnCodeLines, lnFB2P_Version ; , laBloquesExclusion(1,2), lnBloquesExclusion, I WITH THIS AS c_conversor_prg_a_scx OF 'FOXBIN2PRG.PRG' STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version - STORE '' TO lcLine, lcSourceFile - STORE NULL TO loReg, toModulo + STORE NULL TO toModulo C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) @@ -5509,8 +5541,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin TRY LOCAL lcObjName, lnCodError, I, X, loEx AS EXCEPTION ; - , loClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' ; - , loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG' + , loClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_prg_a_scx OF 'FOXBIN2PRG.PRG' *-- Creo el registro de cabecera @@ -5525,7 +5556,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin *-- Recorro las CLASES FOR X = 1 TO 2 FOR I = 1 TO toModulo._Clases_Count - + loClase = NULL loClase = toModulo._Clases(I) *-- El dataenvironment debe estar primero, luego lo demás. @@ -5653,7 +5684,8 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin FINALLY USE IN (SELECT("TABLABIN")) - + STORE NULL TO loClase, loEx + RELEASE lcObjName, lnCodError, I, X, loClase ENDTRY RETURN @@ -5697,13 +5729,11 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL lnCodError, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; - , laBloquesExclusion(1,2), lnBloquesExclusion, I + LOCAL laCodeLines(1), lnCodeLines, laBloquesExclusion(1,2), lnBloquesExclusion, I WITH THIS AS c_conversor_prg_a_pjx OF 'FOXBIN2PRG.PRG' - STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version - STORE '' TO lcLine, lcSourceFile - STORE NULL TO loReg, toModulo + STORE 0 TO lnCodeLines + STORE NULL TO toModulo C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) @@ -5732,6 +5762,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin FINALLY USE IN (SELECT("TABLABIN")) + RELEASE laCodeLines, lnCodeLines, laBloquesExclusion, lnBloquesExclusion, I ENDTRY RETURN @@ -5748,11 +5779,12 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL loReg, lnCodError, loEx AS EXCEPTION ; + LOCAL lnCodError, lcMainProg, loEx AS EXCEPTION ; , loServerHead AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' ; , loFile AS CL_PROJ_FILE OF 'FOXBIN2PRG.PRG' WITH THIS AS c_conversor_prg_a_pjx OF 'FOXBIN2PRG.PRG' + STORE NULL TO loFile, loServerHead toProject._HomeDir = CHRTRAN( toProject._HomeDir, ['], [] ) *-- Creo solo el registro de cabecera del proyecto @@ -5837,6 +5869,8 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin FINALLY USE IN (SELECT("TABLABIN")) + STORE NULL TO loFile, loServerHead + RELEASE loFile, loServerHead ENDTRY @@ -5949,7 +5983,6 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin IF LEFT( tcLine, LEN(C_BUILDPROJ_I) ) == C_BUILDPROJ_I llBloqueEncontrado = .T. - STORE NULL TO loProject, loFile WITH THIS FOR I = I + 1 TO tnCodeLines @@ -5970,6 +6003,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin CASE UPPER( LEFT( tcLine, 5 ) ) == '.ADD(' * loFile: NAME,TYPE,EXCLUDE,COMMENTS tcLine = CHRTRAN( tcLine, ["] + '[]', "'''" ) && Convierto "[] en ' + STORE NULL TO loFile loFile = CREATEOBJECT('CL_PROJ_FILE') loFile._Name = ALLTRIM( STREXTRACT( tcLine, ['], ['] ) ) @@ -6003,6 +6037,9 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin THROW + FINALLY + STORE NULL TO loFile + RELEASE lcComment, lcMetadatos, luValor, laPropsAndValues, lnPropsAndValues_Count, loFile ENDTRY RETURN llBloqueEncontrado @@ -6021,8 +6058,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL llBloqueEncontrado ; - , loServerHead AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' + LOCAL llBloqueEncontrado IF LEFT( tcLine, LEN(C_DEVINFO_I) ) == C_DEVINFO_I llBloqueEncontrado = .T. @@ -6079,7 +6115,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin IF LEFT( tcLine, LEN(C_SRV_HEAD_I) ) == C_SRV_HEAD_I llBloqueEncontrado = .T. - STORE NULL TO loServerHead, loServerData + STORE NULL TO loServerHead loServerHead = toProject._ServerHead WITH THIS AS c_conversor_prg_a_pjx OF 'FOXBIN2PRG.PRG' @@ -6110,6 +6146,10 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin THROW + FINALLY + STORE NULL TO loServerHead + RELEASE loServerHead + ENDTRY RETURN llBloqueEncontrado @@ -6135,7 +6175,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin IF LEFT( tcLine, LEN(C_SRV_DATA_I) ) == C_SRV_DATA_I llBloqueEncontrado = .T. - STORE NULL TO loServerHead, loServerData + STORE NULL TO loServerData, loServerHead loServerHead = toProject._ServerHead loServerData = loServerHead.getServerDataObject() @@ -6168,6 +6208,10 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin THROW + FINALLY + STORE NULL TO loServerData, loServerHead + RELEASE loServerHead, loServerData + ENDTRY RETURN llBloqueEncontrado @@ -6192,6 +6236,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin IF LEFT( tcLine, LEN(C_FILE_CMTS_I) ) == C_FILE_CMTS_I llBloqueEncontrado = .T. + loFile = NULL WITH THIS AS c_conversor_prg_a_pjx OF 'FOXBIN2PRG.PRG' FOR I = I + 1 TO tnCodeLines @@ -6225,6 +6270,10 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin THROW + FINALLY + loFile = NULL + RELEASE lcFile, lcComment, loFile + ENDTRY RETURN llBloqueEncontrado @@ -6249,6 +6298,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin IF LEFT( tcLine, LEN(C_FILE_EXCL_I) ) == C_FILE_EXCL_I llBloqueEncontrado = .T. + loFile = NULL WITH THIS AS c_conversor_prg_a_pjx OF 'FOXBIN2PRG.PRG' FOR I = I + 1 TO tnCodeLines @@ -6282,6 +6332,10 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin THROW + FINALLY + loFile = NULL + RELEASE lcFile, llExclude, loFile + ENDTRY RETURN llBloqueEncontrado @@ -6306,6 +6360,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin IF LEFT( tcLine, LEN(C_FILE_TXT_I) ) == C_FILE_TXT_I llBloqueEncontrado = .T. + loFile = NULL WITH THIS AS c_conversor_prg_a_pjx OF 'FOXBIN2PRG.PRG' FOR I = I + 1 TO tnCodeLines @@ -6339,6 +6394,10 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin THROW + FINALLY + loFile = NULL + RELEASE lcFile, lcType, loFile + ENDTRY RETURN llBloqueEncontrado @@ -6440,13 +6499,12 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; + LOCAL lnCodError, loEx AS EXCEPTION, laCodeLines(1), lnCodeLines, lnFB2P_Version ; , laBloquesExclusion(1,2), lnBloquesExclusion, I WITH THIS AS c_conversor_prg_a_frx OF 'FOXBIN2PRG.PRG' - STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version - STORE '' TO lcLine, lcSourceFile - STORE NULL TO loReg, toModulo + STORE 0 TO lnCodError, lnCodeLines + STORE NULL TO toReport C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) lnCodeLines = ALINES( laCodeLines, C_FB2PRG_CODE ) @@ -6494,6 +6552,7 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin , luValor, lnCodError, loEx AS EXCEPTION SELECT TABLABIN AFIELDS( laFieldTypes ) + loReg = NULL *-- Agrego los registros FOR EACH loReg IN toReport FOXOBJECT @@ -6558,6 +6617,8 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin FINALLY USE IN (SELECT("TABLABIN")) + loReg = NULL + RELEASE loReg, I, lcFieldType, lnFieldLen, lnFieldDec, lnNumCampo, laFieldTypes, luValor ENDTRY @@ -6753,6 +6814,8 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin IF LEFT( tcLine, LEN(C_TAG_REPORTE) + 1 ) == '<' + C_TAG_REPORTE + '' llBloqueEncontrado = .T. + loReg = NULL + WITH THIS AS c_conversor_prg_a_frx OF 'FOXBIN2PRG.PRG' loReg = .emptyRecord() @@ -6817,6 +6880,10 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin THROW + FINALLY + loReg = NULL + RELEASE lcComment, lcMetadatos, luValor, laPropsAndValues, lnPropsAndValues_Count, loReg + ENDTRY RETURN llBloqueEncontrado @@ -6854,11 +6921,8 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; - , laBloquesExclusion(1,2), lnBloquesExclusion, I - STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version - STORE '' TO lcLine, lcSourceFile - STORE NULL TO loReg, toModulo + LOCAL lnCodError, loEx AS EXCEPTION, laCodeLines(1), lnCodeLines, laBloquesExclusion(1,2), lnBloquesExclusion, I + STORE 0 TO lnCodError, lnCodeLines WITH THIS AS c_conversor_prg_a_dbf OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) @@ -6900,13 +6964,14 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL I, lnCodError, loEx AS EXCEPTION - LOCAL loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG' - LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' - LOCAL lcCreateTable, lcLongDec, lcFieldDef, lcIndex, ldLastUpdate, lcTempDBC, lnDataSessionID, lnSelect - LOCAL loDBFUtils AS CL_DBF_UTILS OF 'FOXBIN2PRG.PRG' + LOCAL I, lnCodError, loEx AS EXCEPTION ; + , loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG' ; + , loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' ; + , loDBFUtils AS CL_DBF_UTILS OF 'FOXBIN2PRG.PRG' ; + , lcCreateTable, lcLongDec, lcFieldDef, lcIndex, ldLastUpdate, lcTempDBC, lnDataSessionID, lnSelect WITH THIS AS c_conversor_prg_a_dbf OF 'FOXBIN2PRG.PRG' + STORE NULL TO loField, loIndex, loDBFUtils loDBFUtils = CREATEOBJECT('CL_DBF_UTILS') STORE 0 TO lnCodError @@ -7026,6 +7091,7 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin FINALLY USE IN (SELECT(JUSTSTEM(THIS.c_OutputFile))) + STORE NULL TO loField, loIndex, loDBFUtils IF NOT EMPTY(lcTempDBC) CLOSE DATABASES @@ -7034,6 +7100,9 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin ERASE (FORCEEXT(lcTempDBC,'DCX')) ENDIF + RELEASE I, loField, loIndex, loDBFUtils ; + , lcCreateTable, lcLongDec, lcFieldDef, lcIndex, ldLastUpdate, lcTempDBC, lnDataSessionID, lnSelect + ENDTRY RETURN lnCodError @@ -7135,10 +7204,10 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; + LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines ; , laBloquesExclusion(1,2), lnBloquesExclusion, I - STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version - STORE '' TO lcLine, lcSourceFile + STORE 0 TO lnCodError, lnCodeLines + STORE '' TO lcLine STORE NULL TO loReg, toModulo WITH THIS AS c_conversor_prg_a_dbc OF 'FOXBIN2PRG.PRG' @@ -7184,9 +7253,8 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL lnCodError, lcCreateTable, lcLongDec, lcFieldDef, lcIndex, ldLastUpdate + LOCAL lnCodError lnCodError = 0 - STORE '' TO lcIndex, lcFieldDef IF NOT EMPTY(toDatabase._DBCEventFilename) AND FILE(toDatabase._DBCEventFilename) *-- Si no recompilo el EventFilename.prg, el EXE dará un error (aunque el PRG no) @@ -7311,11 +7379,10 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines, lnFB2P_Version, lcSourceFile ; + LOCAL lnCodError, loEx AS EXCEPTION, loReg, lcLine, laCodeLines(1), lnCodeLines ; , laBloquesExclusion(1,2), lnBloquesExclusion - STORE 0 TO lnCodError, lnCodeLines, lnFB2P_Version - STORE '' TO lcLine, lcSourceFile - STORE NULL TO loReg, toModulo + STORE 0 TO lnCodError, lnCodeLines + STORE '' TO lcLine WITH THIS AS c_conversor_prg_a_mnx OF 'FOXBIN2PRG.PRG' C_FB2PRG_CODE = FILETOSTR( .c_InputFile ) @@ -7424,9 +7491,8 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin #ENDIF TRY - LOCAL lnCodError, lcCreateTable, lcLongDec, lcFieldDef, lcIndex, ldLastUpdate + LOCAL lnCodError lnCodError = 0 - STORE '' TO lcIndex, lcFieldDef toMenu.updateMENU( THIS ) @@ -7717,11 +7783,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ELSE *-- Propiedad normal - *-- SI HACE FALTA QUE LOS MÉTODOS ESTÉN AL FINAL, DESCOMENTAR ESTO (Y EL DE MÁS ABAJO) - *IF LEFT(laItems(I), 1) == '*' && Only Reserved3 have this - * LOOP - *ENDIF - lnPosEQ = AT( '=', laItems(I) ) taPropsAndValues(X,1) = LEFT( laItems(I), lnPosEQ - 2 ) taPropsAndValues(X,2) = .normalizarValorPropiedad( taPropsAndValues(X,1), LTRIM( SUBSTR( laItems(I), lnPosEQ + 2 ) ), '' ) @@ -7739,12 +7800,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *-- Agregar propiedades primero FOR I = 1 TO m.tnPropsAndValues_Count - *-- SI HACE FALTA QUE LOS MÉTODOS ESTÉN AL FINAL, DESCOMENTAR ESTO (Y EL DE MÁS ARRIBA) - *IF LEFT(taPropsAndValues(I,1), 1) == '*' && Only Reserved3 have this - * lcMethods = m.lcMethods + m.taPropsAndValues(I,1) + ' = ' + m.taPropsAndValues(I,2) + CR_LF - * LOOP - *ENDIF - tcSortedMemo = m.tcSortedMemo + m.taPropsAndValues(I,1) + ' = ' + m.taPropsAndValues(I,2) + CR_LF ENDFOR @@ -7891,7 +7946,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base EXTERNAL ARRAY taPropsAndValues TRY - LOCAL lcLine, I, lcComentarios, laLines(1), lcFinDeLinea_Coma_PuntoComa_CR + LOCAL lcLine, I, lcComentarios, laLines(1), lcFinDeLinea lcLine = '' lcFinDeLinea = ', ;' + CR_LF @@ -7940,7 +7995,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base LOCAL lnLineCount, laLine(1), I, lnTextNodes, tcSorted, lnProtectedLine, lcMethod, lnLine_Len, lcLine LOCAL loEx AS EXCEPTION DIMENSION taMethods(1,3) - STORE '' TO taMethods, m.tcSorted, taCode + STORE '' TO taMethods, tcSorted, taCode tnMethodCount = 0 IF NOT EMPTY(m.tcMethod) AND LEFT(m.tcMethod,9) == "ENDPROC"+CHR(13)+CHR(10) @@ -8193,10 +8248,10 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base LPARAMETERS tcMethods, taPropsAndComments, tnPropsAndComments_Count, taProtected, tnProtected_Count *-- Finalmente, todos los métodos los ordeno y escribo juntos - LOCAL laMethods(1), laCode(1), lnMethodCount, I, lcMethods, lcMethods2 + LOCAL laMethods(1), laCode(1), lnMethodCount, I, lcMethods IF NOT EMPTY(tcMethods) - STORE '' TO lcMethods, lcMethods2 + STORE '' TO lcMethods DIMENSION laMethods(1,3) WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' @@ -8232,8 +8287,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base EXTERNAL ARRAY taMethods, taCode, taProtected, taPropsAndComments TRY - LOCAL lcMethod, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods, lcMethods2 - STORE '' TO lcMethod, lcProcDef, lcMethods, lcMethods2 + LOCAL lcMethod, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods + STORE '' TO lcMethod, lcProcDef, lcMethods IF tnMethodCount > 0 THEN WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG' @@ -8408,6 +8463,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ******************************************************************************************************************* PROCEDURE write_DEFINED_PAM *-- Escribo propiedades DEFINED (Reserved3) en este formato: + LPARAMETERS taPropsAndComments, tnPropsAndComments_Count * *m: *metodovacio_con_comentarios && Este método no tiene código, pero tiene comentarios. A ver que pasa! @@ -8419,10 +8475,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *p: _memberdata && XML Metadata for customizable properties * - LPARAMETERS taPropsAndComments, tnPropsAndComments_Count - IF tnPropsAndComments_Count > 0 - LOCAL I, lcPropsMethodsDefd + LOCAL I, lcPropsMethodsDefd, lcType lcPropsMethodsDefd = '' TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -8463,6 +8517,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF ENDIF + + RETURN ENDPROC @@ -8483,6 +8539,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base <<'DEFINE CLASS'>> <> AS <> <> ENDTEXT + RETURN ENDPROC @@ -8504,6 +8561,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDTEXT ENDIF ENDIF + + RETURN ENDPROC @@ -8516,6 +8575,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base <<>> ENDTEXT ENDIF + + RETURN ENDPROC @@ -8528,6 +8589,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base <<>> #INCLUDE "<>" ENDTEXT ENDIF + + RETURN ENDPROC @@ -8576,6 +8639,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + RETURN ENDPROC @@ -8608,6 +8672,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base <> ENDTEXT + RETURN ENDPROC @@ -8621,6 +8686,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base <<>> HIDDEN <> ENDTEXT ENDIF + + RETURN ENDPROC @@ -8634,6 +8701,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base <<>> PROTECTED <> ENDTEXT ENDIF + + RETURN ENDPROC @@ -8642,7 +8711,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base LPARAMETERS toReg TRY - LOCAL lc_TAG_REPORTE, loEx AS EXCEPTION + LOCAL lc_TAG_REPORTE_I, lc_TAG_REPORTE_F, loEx AS EXCEPTION lc_TAG_REPORTE_I = '<' + C_TAG_REPORTE + ' ' lc_TAG_REPORTE_F = '' @@ -8754,7 +8823,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base LPARAMETERS toReg TRY - LOCAL lc_TAG_REPORTE, loEx AS EXCEPTION + LOCAL lc_TAG_REPORTE_I, lc_TAG_REPORTE_F, loEx AS EXCEPTION lc_TAG_REPORTE_I = '<' + C_TAG_REPORTE + ' ' lc_TAG_REPORTE_F = '' @@ -8866,7 +8935,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base LPARAMETERS toReg TRY - LOCAL lc_TAG_REPORTE, loEx AS EXCEPTION + LOCAL lc_TAG_REPORTE_I, lc_TAG_REPORTE_F, loEx AS EXCEPTION lc_TAG_REPORTE_I = '<' + C_TAG_REPORTE + ' ' lc_TAG_REPORTE_F = '' @@ -8990,6 +9059,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base lnOLECount = 0 SCAN ALL FOR TABLABIN.PLATFORM = "WINDOWS" AND BASECLASS = 'olecontrol' + loReg = NULL SCATTER MEMO NAME loReg IF toFoxBin2Prg.l_NoTimestamps @@ -9026,6 +9096,11 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDIF THROW + + FINALLY + loReg = NULL + RELEASE loReg + ENDTRY RETURN @@ -9196,6 +9271,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName lnObjCount = lnObjCount + 1 DIMENSION laObjs(lnObjCount,3) + loRegObj = NULL SCATTER MEMO NAME loRegObj laObjs(lnObjCount,1) = loRegObj laObjs(lnObjCount,2) = RECNO() && ZOrder @@ -9257,6 +9333,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg FOR TABLABIN.PLATFORM = "WINDOWS" AND NOT TABLABIN.RESERVED1=="Class" ; WHILE ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + loRegObj = NULL SCATTER MEMO NAME loRegObj IF toFoxBin2Prg.l_NoTimestamps @@ -9307,6 +9384,10 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg FINALLY USE IN (SELECT("TABLABIN")) + STORE NULL TO loRegClass, loRegObj + RELEASE lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods, laCode, laProtected, lnLen, lnObjCount ; + , laPropsAndValues, laPropsAndComments, lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle ; + , laObjs, I, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count ENDTRY @@ -9371,6 +9452,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg SET ORDER TO PARENT_OBJ GOTO RECORD 1 && Class Library Header/Form Header + loRegClass = NULL SCATTER FIELDS RESERVED8,RESERVED7 MEMO NAME loRegClass IF NOT EMPTY(loRegClass.RESERVED7) THEN @@ -9425,6 +9507,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName lnObjCount = lnObjCount + 1 DIMENSION laObjs(lnObjCount,3) + loRegObj = NULL SCATTER MEMO NAME loRegObj laObjs(lnObjCount,1) = loRegObj laObjs(lnObjCount,2) = RECNO() && ZOrder @@ -9489,6 +9572,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg AND (TABLABIN.BASECLASS == 'dataenvironment' OR TABLABIN.BASECLASS == 'form' OR TABLABIN.BASECLASS == 'formset' ) ) ; WHILE ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + loRegObj = NULL SCATTER MEMO NAME loRegObj IF toFoxBin2Prg.l_NoTimestamps @@ -9538,9 +9622,11 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg THROW FINALLY - loRegObj = NULL - loRegClass = NULL USE IN (SELECT("TABLABIN")) + STORE NULL TO loRegClass, loRegObj + RELEASE lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods, laCode, laProtected, lnLen, lnObjCount ; + , laPropsAndValues, laPropsAndComments, lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle ; + , laObjs, I, lnPropsAndValues_Count, lnPropsAndComments_Count, lnProtected_Count ENDTRY @@ -9632,6 +9718,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg *-- Escaneo el proyecto SCAN ALL FOR NOT INLIST(TYPE, 'H','W','i' ) + loReg = NULL SCATTER FIELDS NAME,TYPE,EXCLUDE,COMMENTS,CPID,TIMESTAMP,ID,OBJREV MEMO NAME loReg IF toFoxBin2Prg.l_NoTimestamps @@ -9727,6 +9814,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg ObjRev="<>" <> ENDTEXT + loReg = NULL ENDFOR TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -9751,6 +9839,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg <<>> .ITEM(lcCurdir + '<>').Description = '<>' ENDTEXT ENDIF + loReg = NULL ENDFOR @@ -9769,6 +9858,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg <<>> .ITEM(lcCurdir + '<>').Exclude = .T. ENDTEXT ENDIF + loReg = NULL ENDFOR @@ -9787,6 +9877,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg <<>> .ITEM(lcCurdir + '<>').Type = 'T' ENDTEXT ENDIF + loReg = NULL ENDFOR @@ -9876,6 +9967,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg FINALLY USE IN (SELECT("TABLABIN")) + STORE NULL TO loProject, loReg, loServerHead, loServerData + RELEASE lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo, lnLen ; + , loProject, loServerHead, loServerData ENDTRY @@ -9996,6 +10090,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg *-- Escaneo el proyecto FOR I = 1 TO ALINES( laLines, STREXTRACT( lcStrPJM, '[ProjectFiles]', '[EOF]' ), 4 ) ALINES( laProps, laLines(I) + ',', 1, ',' ) + loReg = NULL loReg = CREATEOBJECT("EMPTY") ADDPROPERTY( loReg, 'ID', IIF( toFoxBin2Prg.l_ClearUniqueID, 0, VAL( laProps(1) ) ) ) ADDPROPERTY( loReg, 'TYPE', laProps(2) ) @@ -10102,6 +10197,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg ObjRev="<>" <> ENDTEXT + loReg = NULL ENDFOR TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -10144,6 +10240,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg <<>> .ITEM(lcCurdir + '<>').Exclude = .T. ENDTEXT ENDIF + loReg = NULL ENDFOR @@ -10162,6 +10259,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg <<>> .ITEM(lcCurdir + '<>').Type = 'T' ENDTEXT ENDIF + loReg = NULL ENDFOR @@ -10250,6 +10348,9 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg FINALLY *USE IN (SELECT("TABLABIN")) + STORE NULL TO loProject, loReg, loServerHead, loServerData + RELEASE lnCodError, lcStr, lnPos, lnLen, lnServerCount, loReg, lcDevInfo, lnLen ; + , lcStrPJM, laLines, laProps, loProject, loServerHead, loServerData ENDTRY @@ -10297,6 +10398,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg *-- Header LOCATE FOR ObjType = 1 IF FOUND() + loRegCab = NULL SCATTER MEMO NAME loRegCab IF toFoxBin2Prg.l_NoTimestamps @@ -10310,6 +10412,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg *-- Dataenvironment LOCATE FOR ObjType = 25 IF FOUND() + loRegDataEnv = NULL SCATTER MEMO NAME loRegDataEnv IF toFoxBin2Prg.l_NoTimestamps @@ -10323,6 +10426,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg *-- Cursor1 (¿puede haber más de 1 cursor?) LOCATE FOR ObjType = 26 IF FOUND() + loRegCur = NULL SCATTER MEMO NAME loRegCur IF toFoxBin2Prg.l_NoTimestamps @@ -10361,6 +10465,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg GOTO TOP SCAN ALL + loRegObj = NULL SCATTER MEMO NAME loRegObj IF toFoxBin2Prg.l_NoTimestamps @@ -10411,6 +10516,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg FINALLY USE IN (SELECT("TABLABIN")) USE IN (SELECT("TABLABIN_0")) + STORE NULL TO loRegObj, loRegCab, loRegDataEnv, loRegCur + RELEASE lnCodError, loRegCab, loRegDataEnv, loRegCur, loRegObj, lnMethodCount, laMethods, laCode, laProtected, lnLen ; + , laPropsAndValues, laPropsAndComments, lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle ENDTRY @@ -10441,10 +10549,10 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg TRY LOCAL lnCodError, laDatabases(1), lnDatabases_Count, laDatabases2(1), lnLen, lc_FileTypeDesc ; - , ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name - LOCAL loTable AS CL_DBF_TABLE OF 'FOXBIN2PRG.PRG' - LOCAL loDBFUtils AS CL_DBF_UTILS OF 'FOXBIN2PRG.PRG' - + , ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name ; + , loTable AS CL_DBF_TABLE OF 'FOXBIN2PRG.PRG' ; + , loDBFUtils AS CL_DBF_UTILS OF 'FOXBIN2PRG.PRG' + STORE NULL TO loTable, loDBFUtils STORE 0 TO lnCodError loDBFUtils = CREATEOBJECT('CL_DBF_UTILS') @@ -10519,6 +10627,10 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg ENDIF ENDFOR + STORE NULL TO loTable, loDBFUtils + RELEASE lnCodError, laDatabases, lnDatabases_Count, laDatabases2, lnLen, lc_FileTypeDesc ; + , ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name ; + , loTable, loDBFUtils ENDTRY RETURN @@ -10822,7 +10934,6 @@ DEFINE CLASS CL_COL_BASE AS COLLECTION IF ln_AT_Cmt > 0 tcComment = LTRIM( SUBSTR( tcLine, ln_AT_Cmt + 2 ) ) - *tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, ' ', CHR(9) ) && Quito espacios y TABS tcLine = RTRIM( LEFT( tcLine, ln_AT_Cmt - 1 ), 0, CHR(9) ) && Quito TABS ENDIF @@ -11353,7 +11464,6 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE PROCEDURE setParsedInfoLine LPARAMETERS toObject, tcInfoLine LOCAL lcAsignacion, lcCurDir - *lcCurDir = ADDBS(JUSTPATH(THIS._SourceFile)) lcCurDir = ADDBS(THIS._HomeDir) IF LEFT(tcInfoLine,1) == '.' lcAsignacion = 'toObject' + tcInfoLine @@ -11538,11 +11648,13 @@ DEFINE CLASS CL_DBC_COL_BASE AS CL_COL_BASE * tnParentID (v! IN ) ID del objeto Padre *--------------------------------------------------------------------------------------------------- LPARAMETERS tc_OutputFile, tnLastID, tnParentID - LOCAL loObject + LOCAL loObject + loObject = NULL FOR EACH loObject IN THIS FOXOBJECT - loObject.updateDBC( tc_OutputFile, @tnLastID, tnParentID ) - ENDFOR + loObject.updateDBC( tc_OutputFile, @tnLastID, tnParentID ) + loObject = NULL + ENDFOR RETURN ENDPROC @@ -12502,12 +12614,13 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG' - LOCAL loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG' - LOCAL loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG' - LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG' ; + , loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG' ; + , loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG' ; + , loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' ; + , llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION STORE '' TO lcPropName, lcValue + STORE NULL TO loConnections, loTables, loViews, loRelations IF LEFT(tcLine, LEN(C_DATABASE_I)) == C_DATABASE_I llBloqueEncontrado = .T. @@ -12563,6 +12676,9 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE THROW + FINALLY + STORE NULL TO loConnections, loTables, loViews, loRelations + RELEASE loConnections, loTables, loViews, loRelations, lcPropName, lcValue ENDTRY RETURN llBloqueEncontrado @@ -12582,7 +12698,6 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE IF LEFT(tcLine, LEN(C_STORED_PROC_I)) == C_STORED_PROC_I LOCAL lcValue lcValue = '' - llBloqueEncontrado = .T. WITH THIS AS CL_DBC OF 'FOXBIN2PRG.PRG' FOR I = I + 1 TO tnCodeLines @@ -12613,9 +12728,10 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE LPARAMETERS tc_OutputFile, tnLastID, tnParentID TRY - LOCAL loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG' - LOCAL loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG' - LOCAL loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG' + LOCAL loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG' ; + , loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG' ; + , loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG' + STORE NULL TO loTables, loConnections, loViews WITH THIS AS CL_DBC_BASE OF 'FOXBIN2PRG.PRG' loTables = ._Tables @@ -12658,6 +12774,8 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE FINALLY CLOSE DATABASES USE IN (SELECT("TABLABIN")) + STORE NULL TO loTables, loConnections, loViews + RELEASE loTables, loConnections, loViews ENDTRY @@ -12668,11 +12786,12 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE ******************************************************************************************************************* PROCEDURE toText TRY - LOCAL I, lcText, lcDBC, laCode(1,1), loEx AS EXCEPTION - LOCAL loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG' - LOCAL loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG' - LOCAL loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG' - LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + LOCAL I, lcText, lcDBC, laCode(1,1), loEx AS EXCEPTION ; + , loConnections AS CL_DBC_CONNECTIONS OF 'FOXBIN2PRG.PRG' ; + , loTables AS CL_DBC_TABLES OF 'FOXBIN2PRG.PRG' ; + , loViews AS CL_DBC_VIEWS OF 'FOXBIN2PRG.PRG' ; + , loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + STORE NULL TO loRelations, loViews, loTables, loTables WITH THIS AS CL_DBC OF 'FOXBIN2PRG.PRG' lcText = '' @@ -12723,6 +12842,10 @@ DEFINE CLASS CL_DBC AS CL_DBC_BASE THROW + FINALLY + STORE NULL TO loRelations, loViews, loTables, loTables + RELEASE I, lcDBC, laCode, loConnections, loTables, loViews, loRelations + ENDTRY RETURN lcText @@ -12766,8 +12889,9 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_DBC_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loConnection AS CL_DBC_CONNECTION OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loConnection AS CL_DBC_CONNECTION OF 'FOXBIN2PRG.PRG' + STORE NULL TO loConnection STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_CONNECTIONS_I)) == C_CONNECTIONS_I @@ -12810,6 +12934,10 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loConnection + RELEASE lcPropName, lcValue, loConnection + ENDTRY RETURN llBloqueEncontrado @@ -12826,8 +12954,9 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_DBC_COL_BASE LPARAMETERS taConnections, tnConnection_Count TRY - LOCAL I, lcText, loEx AS EXCEPTION - LOCAL loConnection AS CL_DBC_CONNECTION OF 'FOXBIN2PRG.PRG' + LOCAL I, lcText, loEx AS EXCEPTION ; + , loConnection AS CL_DBC_CONNECTION OF 'FOXBIN2PRG.PRG' + loConnection = NULL lcText = '' DIMENSION taConnections(1) @@ -12860,6 +12989,10 @@ DEFINE CLASS CL_DBC_CONNECTIONS AS CL_DBC_COL_BASE THROW + FINALLY + loConnection = NULL + RELEASE I, loConnection + ENDTRY RETURN lcText @@ -13073,8 +13206,9 @@ DEFINE CLASS CL_DBC_TABLES AS CL_DBC_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loTable AS CL_DBC_TABLE OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loTable AS CL_DBC_TABLE OF 'FOXBIN2PRG.PRG' + STORE NULL TO loTable STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_TABLES_I)) == C_TABLES_I @@ -13114,6 +13248,10 @@ DEFINE CLASS CL_DBC_TABLES AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loTable + RELEASE lcPropName, lcValue, loTable + ENDTRY RETURN llBloqueEncontrado @@ -13132,8 +13270,9 @@ DEFINE CLASS CL_DBC_TABLES AS CL_DBC_COL_BASE EXTERNAL ARRAY taTables TRY - LOCAL I, lcText, loEx AS EXCEPTION - LOCAL loTable AS CL_DBC_TABLE OF 'FOXBIN2PRG.PRG' + LOCAL I, lcText, loEx AS EXCEPTION ; + , loTable AS CL_DBC_TABLE OF 'FOXBIN2PRG.PRG' + STORE NULL TO loTable STORE 0 TO I, tnTable_Count lcText = '' @@ -13172,6 +13311,10 @@ DEFINE CLASS CL_DBC_TABLES AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loTable + RELEASE I, loTable + ENDTRY RETURN lcText @@ -13213,10 +13356,6 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE _RuleExpression = '' _RuleText = '' - *-- Sub-objects - *_Fields = NULL - *_Indexes = NULL - PROCEDURE INIT DODEFAULT() @@ -13240,10 +13379,11 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION - LOCAL loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG' - LOCAL loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG' - LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG' ; + , loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG' ; + , loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + STORE NULL TO loRelations, loIndexes, loFields STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_TABLE_I)) == C_TABLE_I @@ -13297,6 +13437,10 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE THROW + FINALLY + STORE NULL TO loRelations, loIndexes, loFields + RELEASE lcPropName, lcValue, loFields, loIndexes, loRelations + ENDTRY RETURN llBloqueEncontrado @@ -13311,10 +13455,11 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE LPARAMETERS tcTable TRY - LOCAL lcText, loEx AS EXCEPTION - LOCAL loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG' - LOCAL loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG' - LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + LOCAL lcText, loEx AS EXCEPTION ; + , loIndexes AS CL_DBC_INDEXES_DB OF 'FOXBIN2PRG.PRG' ; + , loFields AS CL_DBC_FIELDS_DB OF 'FOXBIN2PRG.PRG' ; + , loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + STORE NULL TO loRelations, loFields, loIndexes lcText = '' TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -13354,6 +13499,10 @@ DEFINE CLASS CL_DBC_TABLE AS CL_DBC_BASE THROW + FINALLY + STORE NULL TO loRelations, loFields, loIndexes + RELEASE loIndexes, loFields, loRelations + ENDTRY RETURN lcText @@ -13421,8 +13570,9 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loField AS CL_DBC_FIELD_DB OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loField AS CL_DBC_FIELD_DB OF 'FOXBIN2PRG.PRG' + STORE NULL TO loField STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_FIELDS_I)) == C_FIELDS_I @@ -13440,6 +13590,7 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE EXIT CASE C_FIELD_I $ tcLine + loField = NULL loField = CREATEOBJECT("CL_DBC_FIELD_DB") loField.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) .ADD( loField, loField._Name ) @@ -13462,6 +13613,10 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loField + RELEASE lcPropName, lcValue, loField + ENDTRY RETURN llBloqueEncontrado @@ -13476,8 +13631,9 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE LPARAMETERS tcTable TRY - LOCAL X, lcText, lnField_Count, laFields(1), loEx AS EXCEPTION - LOCAL loField AS CL_DBC_FIELD_DB OF 'FOXBIN2PRG.PRG' + LOCAL X, lcText, lnField_Count, laFields(1), loEx AS EXCEPTION ; + , loField AS CL_DBC_FIELD_DB OF 'FOXBIN2PRG.PRG' + STORE NULL TO loField STORE 0 TO X, lnField_Count lcText = '' @@ -13520,6 +13676,9 @@ DEFINE CLASS CL_DBC_FIELDS_DB AS CL_DBC_COL_BASE FINALLY USE IN (SELECT("TB")) USE IN (SELECT("TB2")) + STORE NULL TO loField + RELEASE X, lnField_Count, laFields, loField + ENDTRY RETURN lcText @@ -13709,8 +13868,9 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loIndex AS CL_DBC_INDEX_DB OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loIndex AS CL_DBC_INDEX_DB OF 'FOXBIN2PRG.PRG' + STORE NULL TO loIndex STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_INDEXES_I)) == C_INDEXES_I @@ -13728,6 +13888,7 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE EXIT CASE C_INDEX_I $ tcLine + loIndex = NULL loIndex = CREATEOBJECT("CL_DBC_INDEX_DB") loIndex.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) .ADD( loIndex, loIndex._Name ) @@ -13750,6 +13911,10 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loIndex + RELEASE lcPropName, lcValue, loIndex + ENDTRY RETURN llBloqueEncontrado @@ -13764,8 +13929,9 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE LPARAMETERS tcTable TRY - LOCAL X, lcText, lnIndex_Count, laIndexes(1), loEx AS EXCEPTION - LOCAL loIndex AS CL_DBC_INDEX_DB OF 'FOXBIN2PRG.PRG' + LOCAL X, lcText, lnIndex_Count, laIndexes(1), loEx AS EXCEPTION ; + , loIndex AS CL_DBC_INDEX_DB OF 'FOXBIN2PRG.PRG' + STORE NULL TO loIndex STORE 0 TO X, lnIndex_Count lcText = '' @@ -13808,6 +13974,9 @@ DEFINE CLASS CL_DBC_INDEXES_DB AS CL_DBC_COL_BASE FINALLY USE IN (SELECT("TB")) USE IN (SELECT("TB2")) + STORE NULL TO loIndex + RELEASE X, lnIndex_Count, laIndexes, loIndex + ENDTRY RETURN lcText @@ -13974,8 +14143,9 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loView AS CL_DBC_VIEW OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loView AS CL_DBC_VIEW OF 'FOXBIN2PRG.PRG' + STORE NULL TO loView STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_VIEWS_I)) == C_VIEWS_I @@ -13993,6 +14163,7 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE EXIT CASE C_VIEW_I $ tcLine + loView = NULL loView = CREATEOBJECT("CL_DBC_VIEW") loView.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) .ADD( loView, loView._Name ) @@ -14015,6 +14186,10 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loView + RELEASE lcPropName, lcValue, loView + ENDTRY RETURN llBloqueEncontrado @@ -14032,8 +14207,9 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE EXTERNAL ARRAY taViews TRY - LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION - LOCAL loView AS CL_DBC_VIEW OF 'FOXBIN2PRG.PRG' + LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION ; + , loView AS CL_DBC_VIEW OF 'FOXBIN2PRG.PRG' + STORE NULL TO loView STORE 0 TO I, X, tnView_Count, lnField_Count lcText = '' lcDBC = JUSTSTEM(DBC()) @@ -14073,6 +14249,10 @@ DEFINE CLASS CL_DBC_VIEWS AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loView + RELEASE I, lcDBC, lnField_Count, laFields, loView + ENDTRY RETURN lcText @@ -14173,10 +14353,11 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION - LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG' - LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG' - LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG' ; + , loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG' ; + , loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + STORE NULL TO loRelations, loIndexes, loFields STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_VIEW_I)) == C_VIEW_I @@ -14194,14 +14375,17 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE EXIT CASE C_FIELDS_I $ tcLine + loFields = NULL loFields = ._Fields loFields.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) CASE C_INDEXES_I $ tcLine + loIndexes = NULL loIndexes = ._Indexes loIndexes.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) CASE C_RELATIONS_I $ tcLine + loRelations = NULL loRelations = ._Relations loRelations.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) @@ -14230,6 +14414,10 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE THROW + FINALLY + STORE NULL TO loRelations, loIndexes, loFields + LOCAL lcPropName, lcValue, loFields, loIndexes, loRelations + ENDTRY RETURN llBloqueEncontrado @@ -14244,10 +14432,11 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE LPARAMETERS tcView TRY - LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION - LOCAL loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG' - LOCAL loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG' - LOCAL loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + LOCAL I, lcText, lcDBC, lnField_Count, laFields(1), loEx AS EXCEPTION ; + , loFields AS CL_DBC_FIELDS_VW OF 'FOXBIN2PRG.PRG' ; + , loIndexes AS CL_DBC_INDEXES_VW OF 'FOXBIN2PRG.PRG' ; + , loRelations AS CL_DBC_RELATIONS OF 'FOXBIN2PRG.PRG' + STORE NULL TO loRelations, loIndexes, loFields lcText = '' WITH THIS AS CL_DBC_VIEW OF 'FOXBIN2PRG.PRG' @@ -14314,6 +14503,10 @@ DEFINE CLASS CL_DBC_VIEW AS CL_DBC_BASE THROW + FINALLY + STORE NULL TO loRelations, loIndexes, loFields + RELEASE I, lcDBC, lnField_Count, laFields, loFields, loIndexes, loRelations + ENDTRY RETURN lcText @@ -14402,8 +14595,9 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loField AS CL_DBC_FIELD_VW OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loField AS CL_DBC_FIELD_VW OF 'FOXBIN2PRG.PRG' + STORE NULL TO loField STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_FIELDS_I)) == C_FIELDS_I @@ -14421,6 +14615,7 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE EXIT CASE C_FIELD_I $ tcLine + loField = NULL loField = CREATEOBJECT("CL_DBC_FIELD_VW") loField.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) .ADD( loField, loField._Name ) @@ -14443,6 +14638,10 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loField + RELEASE lcPropName, lcValue, loField + ENDTRY RETURN llBloqueEncontrado @@ -14458,8 +14657,9 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE LPARAMETERS tcView TRY - LOCAL X, lcText, lnField_Count, laFields(1), loEx AS EXCEPTION - LOCAL loField AS CL_DBC_FIELD_VW OF 'FOXBIN2PRG.PRG' + LOCAL X, lcText, lnField_Count, laFields(1), loEx AS EXCEPTION ; + , loField AS CL_DBC_FIELD_VW OF 'FOXBIN2PRG.PRG' + STORE NULL TO loField STORE 0 TO X, tnTable_Count, lnField_Count lcText = '' @@ -14502,6 +14702,9 @@ DEFINE CLASS CL_DBC_FIELDS_VW AS CL_DBC_COL_BASE FINALLY USE IN (SELECT("TB")) USE IN (SELECT("TB2")) + STORE NULL TO loField + RELEASE X, lnField_Count, laFields, loField + ENDTRY RETURN lcText @@ -14704,8 +14907,9 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG' + STORE NULL TO loRelation STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_RELATIONS_I)) == C_RELATIONS_I @@ -14723,6 +14927,7 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE EXIT CASE C_RELATION_I $ tcLine + loRelation = NULL loRelation = CREATEOBJECT("CL_DBC_RELATION") loRelation.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) .ADD( loRelation, loRelation._ChildTable + loRelation._ParentTable ) @@ -14745,6 +14950,10 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loRelation + RELEASE lcPropName, lcValue, loRelation + ENDTRY RETURN llBloqueEncontrado @@ -14763,8 +14972,9 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE EXTERNAL ARRAY taRelations TRY - LOCAL I, X, lcText, loEx AS EXCEPTION - LOCAL loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG' + LOCAL I, X, lcText, loEx AS EXCEPTION ; + , loRelation AS CL_DBC_RELATION OF 'FOXBIN2PRG.PRG' + STORE NULL TO loRelation lcText = '' X = 0 @@ -14801,6 +15011,10 @@ DEFINE CLASS CL_DBC_RELATIONS AS CL_DBC_COL_BASE THROW + FINALLY + STORE NULL TO loRelation + RELEASE I, X, loRelation + ENDTRY RETURN lcText @@ -15010,9 +15224,10 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loFields AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG' - LOCAL loIndexes AS CL_DBF_INDEXES OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loFields AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG' ; + , loIndexes AS CL_DBF_INDEXES OF 'FOXBIN2PRG.PRG' + STORE NULL TO loIndexes, loFields STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_TABLE_I)) == C_TABLE_I @@ -15059,6 +15274,10 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE THROW + FINALLY + STORE NULL TO loIndexes, loFields + RELEASE lcPropName, lcValue, loFields, loIndexes + ENDTRY RETURN llBloqueEncontrado @@ -15079,9 +15298,10 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE LPARAMETERS tn_HexFileType, tl_FileHasCDX, tl_FileHasMemo, tl_FileIsDBC, tc_DBC_Name, tc_InputFile, tc_FileTypeDesc TRY - LOCAL lcText, loEx AS EXCEPTION - LOCAL loFields AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG' - LOCAL loIndexes AS CL_DBF_INDEXES OF 'FOXBIN2PRG.PRG' + LOCAL lcText, loEx AS EXCEPTION ; + , loFields AS CL_DBF_FIELDS OF 'FOXBIN2PRG.PRG' ; + , loIndexes AS CL_DBF_INDEXES OF 'FOXBIN2PRG.PRG' + STORE NULL TO loIndexes, loFields lcText = '' TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 @@ -15116,6 +15336,9 @@ DEFINE CLASS CL_DBF_TABLE AS CL_CUS_BASE THROW + FINALLY + STORE NULL TO loIndexes, loFields + RELEASE loFields, loIndexes ENDTRY RETURN lcText @@ -15144,9 +15367,10 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG' - LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG' ; + , loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' + STORE NULL TO loIndex, loField STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_FIELDS_I)) == C_FIELDS_I @@ -15164,6 +15388,7 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE EXIT CASE C_FIELD_I $ tcLine + loField = NULL loField = CREATEOBJECT("CL_DBF_FIELD") loField.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) .ADD( loField, loField._Name ) @@ -15186,6 +15411,10 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE THROW + FINALLY + STORE NULL TO loIndex, loField + RELEASE lcPropName, lcValue, loField, loIndex + ENDTRY RETURN llBloqueEncontrado @@ -15203,8 +15432,9 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE EXTERNAL ARRAY taFields TRY - LOCAL I, lcText, loEx AS EXCEPTION - LOCAL loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG' + LOCAL I, lcText, loEx AS EXCEPTION ; + , loField AS CL_DBF_FIELD OF 'FOXBIN2PRG.PRG' + STORE NULL TO loField lcText = '' DIMENSION taFields(1,18) @@ -15233,6 +15463,10 @@ DEFINE CLASS CL_DBF_FIELDS AS CL_COL_BASE THROW + FINALLY + STORE NULL TO loField + RELEASE I, loField + ENDTRY RETURN lcText @@ -15420,8 +15654,9 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE LPARAMETERS tcLine, taCodeLines, I, tnCodeLines TRY - LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION + LOCAL llBloqueEncontrado, lcPropName, lcValue, loEx AS EXCEPTION ; + , loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' + STORE NULL TO loIndex STORE '' TO lcPropName, lcValue IF LEFT(tcLine, LEN(C_INDEXES_I)) == C_INDEXES_I @@ -15439,6 +15674,7 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE EXIT CASE C_INDEX_I $ tcLine + loIndex = NULL loIndex = CREATEOBJECT("CL_DBF_INDEX") loIndex.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines ) .ADD( loIndex, loIndex._TagName ) @@ -15461,6 +15697,10 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE THROW + FINALLY + STORE NULL TO loIndex + RELEASE lcPropName, lcValue, loIndex + ENDTRY RETURN llBloqueEncontrado @@ -15479,8 +15719,9 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE EXTERNAL ARRAY taTagInfo TRY - LOCAL I, lcText, loEx AS EXCEPTION - LOCAL loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' + LOCAL I, lcText, loEx AS EXCEPTION ; + , loIndex AS CL_DBF_INDEX OF 'FOXBIN2PRG.PRG' + STORE NULL TO loIndex lcText = '' DIMENSION taTagInfo(1,6) @@ -15513,6 +15754,10 @@ DEFINE CLASS CL_DBF_INDEXES AS CL_COL_BASE THROW + FINALLY + STORE NULL TO loIndex + RELEASE I, loIndex + ENDTRY RETURN lcText @@ -15775,7 +16020,6 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE ENDFOR ENDWITH && THIS - loServerData = NULL CATCH TO loEx IF THIS.l_Debug AND _VFP.STARTMODE = 0 @@ -15784,6 +16028,10 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE THROW + FINALLY + loServerData = NULL + RELEASE loServerData + ENDTRY ENDIF @@ -15795,7 +16043,7 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE TRY LOCAL lcStr, lnLenH, lnLen, lnPos ; , loServerData AS CL_PROJ_SRV_DATA OF 'FOXBIN2PRG.PRG' - + STORE NULL TO loServerData lcStr = '' WITH THIS AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' @@ -15828,6 +16076,10 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE THROW + FINALLY + STORE NULL TO loServerData + RELEASE lnLenH, lnLen, lnPos, loServerData + ENDTRY RETURN lcStr @@ -15839,6 +16091,7 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE TRY LOCAL lcText ; , loServerData AS CL_PROJ_SRV_DATA OF 'FOXBIN2PRG.PRG' + STORE NULL TO loServerData lcText = '' WITH THIS AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' @@ -15868,6 +16121,10 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE THROW + FINALLY + STORE NULL TO loServerData + RELEASE loServerData + ENDTRY RETURN lcText @@ -16039,6 +16296,7 @@ DEFINE CLASS CL_MENU_COL_BASE AS CL_COL_BASE LOCAL I, lcLevelName, lnLastKey, llRetorno, llHayDatos, loReg ; , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' ; , loOption AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' + STORE NULL TO loOption, loBarPop WITH THIS AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' lnLastKey = 0 @@ -16058,6 +16316,7 @@ DEFINE CLASS CL_MENU_COL_BASE AS CL_COL_BASE EXIT ENDIF + loReg = NULL SCATTER MEMO NAME loReg lnLastKey = toCol_LastLevelName.GETKEY(loReg.LevelName) @@ -16082,6 +16341,7 @@ DEFINE CLASS CL_MENU_COL_BASE AS CL_COL_BASE EXIT CASE loReg.ObjType = 2 && Bar or Popup + loBarPop = NULL loBarPop = CREATEOBJECT('CL_MENU_BARPOP') llHayDatos = loBarPop.get_DataFromTablabin( loReg, toCol_LastLevelName ) llRetorno = .T. @@ -16093,6 +16353,7 @@ DEFINE CLASS CL_MENU_COL_BASE AS CL_COL_BASE ENDIF CASE loReg.ObjType = 3 && Option + loOption = NULL loOption = CREATEOBJECT('CL_MENU_OPTION') llHayDatos = loOption.get_DataFromTablabin( loReg, toCol_LastLevelName ) llRetorno = llHayDatos @@ -16118,13 +16379,14 @@ DEFINE CLASS CL_MENU_COL_BASE AS CL_COL_BASE THROW FINALLY - STORE NULL TO loBarPop, loOption - IF toReg.ObjType = 2 + IF toReg.ObjType = 2 lnLastKey = toCol_LastLevelName.GETKEY(toReg.LevelName) IF lnLastKey > 0 toCol_LastLevelName.REMOVE(lnLastKey) ENDIF ENDIF + STORE NULL TO loBarPop, loOption + RELEASE I, lcLevelName, lnLastKey, llHayDatos, loReg, loBarPop, loOption ENDTRY RETURN llRetorno @@ -16227,6 +16489,7 @@ DEFINE CLASS CL_MENU_COL_BASE AS CL_COL_BASE ENDIF ENDIF + RETURN ENDPROC @@ -16271,11 +16534,12 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE #ENDIF TRY - LOCAL loOptions AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' - LOCAL loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' LOCAL llBloqueEncontrado, loReg, lcComment, lcExpr, lcProcName, lcProcCode, loEx AS EXCEPTION ; , llBloque_SetupCode_Analizado, llBloque_CleanupCode_Analizado, llBloque_MenuCode_Analizado ; - , llBloque_MenuType_Analizado, llBloque_Procedure_Analizado, llBloque_MenuLocation_Analizado + , llBloque_MenuType_Analizado, llBloque_Procedure_Analizado, llBloque_MenuLocation_Analizado ; + , loOptions AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' ; + , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' + STORE NULL TO loBarPop, loOptions STORE '' TO lcComment llBloqueEncontrado = .T. @@ -16343,6 +16607,13 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loBarPop, loOptions + RELEASE loReg, lcComment, lcExpr, lcProcName, lcProcCode ; + , llBloque_SetupCode_Analizado, llBloque_CleanupCode_Analizado, llBloque_MenuCode_Analizado ; + , llBloque_MenuType_Analizado, llBloque_Procedure_Analizado, llBloque_MenuLocation_Analizado ; + , loOptions, loBarPop + ENDTRY RETURN llBloqueEncontrado @@ -16473,10 +16744,11 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE #ENDIF TRY - LOCAL loOptions AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' - LOCAL loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' LOCAL llBloqueEncontrado, lcExpr, lcProcName, lcProcCode, lcComment, loReg, loEx AS EXCEPTION ; - , llBloque_SetupCode_Analizado + , llBloque_SetupCode_Analizado ; + , loOptions AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' ; + , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' + STORE NULL TO loBarPop, loOptions STORE '' TO lcExpr, lcProcName, lcProcCode, lcComment WITH THIS AS CL_MENU OF 'FOXBIN2PRG.PRG' @@ -16527,6 +16799,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDIF ENDIF + loBarPop = NULL loBarPop = CREATEOBJECT('CL_MENU_BARPOP') loBarPop.c_ParentName = '' loBarPop.n_ParentCode = .oReg.OBJCODE @@ -16555,6 +16828,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE loReg.PROCEDURE = lcProcCode ENDIF + loBarPop = NULL loBarPop = CREATEOBJECT('CL_MENU_BARPOP') loBarPop.c_ParentName = '' loBarPop.n_ParentCode = .oReg.OBJCODE @@ -16563,6 +16837,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE .ADD( loBarPop ) *-- Creo option + loOption = NULL loOption = CREATEOBJECT("CL_MENU_OPTION") loOption.oReg = toConversor.emptyRecord() WITH loOption.oReg @@ -16579,6 +16854,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE ENDWITH *-- Creo BarPop + loBarPop = NULL loBarPop = CREATEOBJECT('CL_MENU_BARPOP') loBarPop.c_ParentName = '' loBarPop.n_ParentCode = loOption.oReg.OBJCODE @@ -16605,8 +16881,9 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE THROW FINALLY - loBarPop = NULL - loReg = NULL + STORE NULL TO loBarPop, loOptions + RELEASE lcExpr, lcProcName, lcProcCode, lcComment, loReg, llBloque_SetupCode_Analizado ; + , loOptions, loBarPop ENDTRY @@ -16678,7 +16955,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE , loCol_LastLevelName AS COLLECTION ; , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' ; , loOption AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' - + STORE NULL TO loOption, loBarPop, loCol_LastLevelName STORE '' TO lcText, lcEndProcedures WITH THIS AS CL_MENU OF 'FOXBIN2PRG.PRG' @@ -16808,6 +17085,11 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loOption, loBarPop, loCol_LastLevelName + RELEASE loReg, loHeader, lnNivel, lcEndProcedures, lcExpr, lcProcName, lcProcCode, lcLocation ; + , loCol_LastLevelName, loBarPop, loOption + ENDTRY RETURN lcText @@ -16819,11 +17101,13 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) *--------------------------------------------------------------------------------------------------- LOCAL loReg, loCol_LastLevelName AS COLLECTION + STORE NULL TO loReg, loCol_LastLevelName GO TOP SCATTER MEMO NAME loReg loCol_LastLevelName = CREATEOBJECT('COLLECTION') CL_MENU_COL_BASE::get_DataFromTablabin( loReg, loCol_LastLevelName ) STORE NULL TO loReg, loCol_LastLevelName + RELEASE loReg, loCol_LastLevelName ENDPROC @@ -16865,6 +17149,7 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE *--------------------------------------------------------------------------------------------------- LPARAMETERS toObj AS COLLECTION, tnNivel, toConversor LOCAL loReg, loEx AS EXCEPTION + STORE NULL TO loReg #IF .F. LOCAL toConversor AS c_conversor_prg_a_mnx OF 'FOXBIN2PRG.PRG' @@ -16915,6 +17200,10 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loReg + RELEASE loReg + ENDTRY ENDPROC @@ -16957,9 +17246,10 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE #ENDIF TRY - LOCAL loOption AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' LOCAL llBloqueEncontrado, lcSubName, lcComment, lnLast_I, loReg, lcExpr, lcProcName, lcProcCode, lcMenuType ; - , loEx AS EXCEPTION + , loEx AS EXCEPTION ; + , loOption AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' + STORE NULL TO loOption STORE '' TO lcSubName, lcComment, lcExpr, lcProcName, lcProcCode WITH THIS AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' @@ -17013,9 +17303,11 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE loReg.OBJCODE = 0 loReg.SCHEME = 4 loReg.NAME = ALLTRIM( GETWORDNUM( tcLine, 3 ) ) + IF RIGHT(loReg.NAME,5) == '_FB2P' && Originalmente era vacío y se la había puesto un nombre temporal. loReg.NAME = '' ENDIF + loReg.LevelName = loReg.NAME lcExpr = ALLTRIM( STREXTRACT( C_FB2PRG_CODE, 'ON SELECTION POPUP ' + loReg.NAME + ' ', CR_LF ) ) .AnalizarSiExpresionEsComandoOProcedimiento( lcExpr, @lcProcName, @lcProcCode, @C_FB2PRG_CODE, -1 ) @@ -17023,16 +17315,19 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE ENDIF CASE LEFT( tcLine, 11 ) == 'DEFINE PAD ' OR LEFT( tcLine, 11 ) == 'DEFINE BAR ' + loOption = NULL loOption = CREATEOBJECT("CL_MENU_OPTION") lnLast_I = I loOption.c_ParentName = loReg.LevelName loOption.n_ParentCode = loReg.OBJCODE loOption.n_ParentType = loReg.ObjType + IF NOT loOption.analizarBloque( @tcLine, @taCodeLines, @I, tnCodeLines, toConversor ) I = lnLast_I llBloqueEncontrado = .F. EXIT ENDIF + .ADD( loOption ) loOption.oReg.ITEMNUM = STR(.COUNT,3) loReg.NUMITEMS = .COUNT @@ -17054,7 +17349,8 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE THROW FINALLY - loOption = NULL + STORE NULL TO loOption + RELEASE lcSubName, lcComment, lnLast_I, loReg, lcExpr, lcProcName, lcProcCode, lcMenuType, loOption ENDTRY @@ -17076,7 +17372,7 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE LOCAL loReg, I, lcText, lcTab, lcExpr, lcProcName, lcProcCode, loEx AS EXCEPTION ; , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' ; , loOption AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' - + STORE NULL TO loOption, loBarPop STORE '' TO lcText, lcExpr, lcProcName, lcProcCode loReg = THIS.oReg lcTab = REPLICATE(CHR(9),tnNivel) @@ -17137,6 +17433,10 @@ DEFINE CLASS CL_MENU_BARPOP AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loOption, loBarPop + RELEASE loReg, I, lcTab, lcExpr, lcProcName, lcProcCode, loBarPop, loOption + ENDTRY RETURN lcText @@ -17187,9 +17487,9 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE #ENDIF TRY - LOCAL loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' - LOCAL llBloqueEncontrado, lcComment, loReg, lnLast_I, loEx AS EXCEPTION ; - , llPadOBar_Analizado + LOCAL llBloqueEncontrado, lcComment, loReg, lnLast_I, loEx AS EXCEPTION, llPadOBar_Analizado ; + , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' + STORE NULL TO loBarPop STORE '' TO lcComment WITH THIS AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' @@ -17238,6 +17538,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE ENDIF CASE LEFT( tcLine, 13 ) == 'DEFINE POPUP ' + loBarPop = NULL loBarPop = CREATEOBJECT("CL_MENU_BARPOP") lnLast_I = I loBarPop.c_ParentName = loReg.LevelName @@ -17270,7 +17571,8 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE THROW FINALLY - loBarPop = NULL + STORE NULL TO loBarPop + RELEASE lcComment, loReg, lnLast_I, llPadOBar_Analizado, loBarPop ENDTRY RETURN llBloqueEncontrado @@ -17295,6 +17597,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE TRY LOCAL llBloqueEncontrado, lcText, loReg, lnPos, lcPadName, lcExpr, lcComment, lcProcName, lcProcCode, loEx AS EXCEPTION ; , lnNegContainer, lnNegObject + STORE NULL TO loReg STORE '' TO lcText, lcComment, lcPadName * Estructura ejemplo a analizar: @@ -17449,6 +17752,10 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loReg + RELEASE lcText, loReg, lnPos, lcPadName, lcExpr, lcComment, lcProcName, lcProcCode, lnNegContainer, lnNegObject + ENDTRY RETURN llBloqueEncontrado @@ -17666,7 +17973,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE LOCAL loReg, I, lcText, lcTab, lcExpr, lcProcName, lcProcCode, loEx AS EXCEPTION ; , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' ; , loOption AS CL_MENU_OPTION OF 'FOXBIN2PRG.PRG' - + STORE NULL TO loOption, loBarPop, loReg lcText = '' lcProcName = '' @@ -17738,6 +18045,10 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loOption, loBarPop, loReg + RELEASE loReg, I, lcTab, lcExpr, lcProcName, lcProcCode, loBarPop, loOption + ENDTRY RETURN lcText @@ -17757,6 +18068,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE TRY LOCAL lcText, lcTab, loEx AS EXCEPTION ; , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' + STORE NULL TO loBarPop lcTab = REPLICATE(CHR(9),tnNivel) lcText = '' @@ -17822,6 +18134,10 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loBarPop + RELEASE lcTab, loBarPop + ENDTRY RETURN lcText @@ -17841,6 +18157,7 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE TRY LOCAL lcText, lcTab, lnContainer, lnObject, loEx AS EXCEPTION ; , loBarPop AS CL_MENU_BARPOP OF 'FOXBIN2PRG.PRG' + STORE NULL TO loBarPop lcTab = REPLICATE(CHR(9),tnNivel) toReg.NAME = EVL(toReg.NAME,SYS(2015)) lcText = '' @@ -17917,6 +18234,10 @@ DEFINE CLASS CL_MENU_OPTION AS CL_MENU_COL_BASE THROW + FINALLY + STORE NULL TO loBarPop + RELEASE lcTab, lnContainer, lnObject, loBarPop + ENDTRY RETURN lcText @@ -18002,7 +18323,7 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION LOCAL lnHandle, lcStr, lnDataPos, lnFieldCount, lnVal, I, loEx AS EXCEPTION ; , lnCodePage, lcCodePageDesc ; , loField AS CL_DBF_UTILS_FIELD OF 'FOXBIN2PRG.PRG' - + STORE NULL TO loField tn_HexFileType = 0 tcDBC_Name = '' lnHandle = FOPEN(tc_FileName,0) @@ -18093,6 +18414,9 @@ DEFINE CLASS CL_DBF_UTILS AS SESSION FINALLY FCLOSE(lnHandle) + STORE NULL TO loField + RELEASE lcStr, lnDataPos, lnFieldCount, lnVal, I, lnCodePage, lcCodePageDesc, loField + ENDTRY RETURN lnHandle