From 4b9450a2a3e90ab0fe7b0fa1347e86f4c38729df Mon Sep 17 00:00:00 2001 From: fernando Date: Thu, 20 Feb 2014 23:51:36 +0100 Subject: [PATCH 1/5] Changeset: 169 - Cambio nombres constantes C_METADATA por C_CLASSDATA --- foxbin2prg.prg | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 1c22706..0a08acf 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -70,6 +70,10 @@ * 01/02/2014 FDBOZZO v1.19.6 Agregada compatibilidad con SourceSafe para Diff y Merge * 02/02/2014 FDBOZZO v1.19.7 Encapsulación de objetos OLE en el propio control o clase // Blocksize ajustado * 03/02/2014 FDBOZZO v1.19.8 Arreglo bug pageframe (error activePage) +* 08/02/2014 FDBOZZO v1.19.9 Nuevos items de config.en foxbin2prg.cfg / Bug en Localización / Mejora log / Parametrización Nº backups / Timestamps desactivados por defecto +* 09/02/2014 FDBOZZO v1.19.10 Parametrización soporte de tipo de conversión por archivo / ClearUniqueID +* 13/02/2014 FDBOZZO v1.19.11 Optimizaciones WITH/ENDWITH (16%+velocidad) / Arreglo bug #IF anidados +* 21/02/2014 FDBOZZO v1.19.12 Centralizar ZOrder controles en metadata de cabecera de clase para minimizar diferencias / También mover UniqueIDs y Timestamps a metadata * * *--------------------------------------------------------------------------------------------------- @@ -86,6 +90,7 @@ * 14/12/2013 Fidel Charny REPORTE BUG scx v1.13: La regeneración de los forms (SCX) no regenera el último registro COMMENT (arreglado en v.1.14) * 01/01/2014 Fidel Charny REPORTE BUG mnx v1.16: El menú no siempre respeta la posición original LOCATION y a veces se genera mal el MNX (se arregla en v1.17) * 05/01/2014 Fidel Charny REPORTE BUG mnx v1.17: Se genera cláusula "DO" o llamada Command cuando no Procedure ni Command que llamar // Diferencia de Case en NAME (se arregla en v1.18) +* 20/02/2014 Ryan Harris PROPUESTA DE MEJORA v1.19.11: Centralizar los ZOrder de los controles en metadata de cabecera de la clase para minimizar diferencias * * *--------------------------------------------------------------------------------------------------- @@ -122,9 +127,11 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb *-- NO modificar! / Do NOT change! #DEFINE C_CMT_I '*--' #DEFINE C_CMT_F '--*' -#DEFINE C_METADATA_I '*< CLASSDATA:' -#DEFINE C_METADATA_F '/>' -#DEFINE C_LEN_METADATA_I LEN(C_METADATA_I) +#DEFINE C_CLASSDATA_I '*< CLASSDATA:' +#DEFINE C_CLASSDATA_F '/>' +#DEFINE C_OBJECTDATA_I '*< OBJECTDATA:' +#DEFINE C_OBJECTDATA_F '/>' +#DEFINE C_LEN_CLASSDATA_I LEN(C_CLASSDATA_I) #DEFINE C_OLE_I '*< OLE:' #DEFINE C_OLE_F '/>' #DEFINE C_LEN_OLE_I LEN(C_OLE_I) @@ -4250,12 +4257,12 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base LOCAL llBloqueEncontrado - IF LEFT(tcLine, C_LEN_METADATA_I) == C_METADATA_I && METADATA de la CLASE + IF LEFT(tcLine, C_LEN_CLASSDATA_I) == C_CLASSDATA_I && METADATA de la CLASE *< CLASSDATA: Baseclass="custom" Timestamp="2013/11/19 11:51:04" Scale="Foxels" Uniqueid="_3WF0VSTN1" ProjectClassIcon="container.ico" ClassIcon="toolbar.ico" /> LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count llBloqueEncontrado = .T. WITH THIS - .get_ListNamesWithValuesFrom_InLine_MetadataTag( @tcLine, @laPropsAndValues, @lnPropsAndValues_Count, C_METADATA_I, C_METADATA_F ) + .get_ListNamesWithValuesFrom_InLine_MetadataTag( @tcLine, @laPropsAndValues, @lnPropsAndValues_Count, C_CLASSDATA_I, C_CLASSDATA_F ) toClase._BaseClass = .get_ValueByName_FromListNamesWithValues( 'BaseClass', 'C', @laPropsAndValues ) toClase._TimeStamp = INT( .RowTimeStamp( .get_ValueByName_FromListNamesWithValues( 'TimeStamp', 'T', @laPropsAndValues ) ) ) @@ -7892,7 +7899,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8 - <<>> <> + <<>> <> Baseclass="<>" Timestamp="<>" Scale="<>" @@ -7922,7 +7929,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDIF TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8 - <> + <> ENDTEXT ENDPROC From f61fbfa3e2c35bf404523fe4f67f553367a3c0fd Mon Sep 17 00:00:00 2001 From: fernando Date: Fri, 21 Feb 2014 01:08:04 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Changeset:=20170=20-=20Generaci=C3=B3n=20de?= =?UTF-8?q?=20VC2/SC2=20con=20nuevo=20header=20metadata=20=20p?= =?UTF-8?q?ara=20centralizar=20uniqueid,=20timestamp=20y=20ZOrder=20y=20re?= =?UTF-8?q?ducir=20bastante=20las=20diferencias=20en=20un=20diff/merge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.prg | 210 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 164 insertions(+), 46 deletions(-) diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 0a08acf..15cdd0a 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -1,6 +1,6 @@ *--------------------------------------------------------------------------------------------------- * Módulo.........: FOXBIN2PRG.PRG - PARA VISUAL FOXPRO 9.0 -* Autor..........: Fernando D. Bozzo (mailto:fdbozzo@gmail.com) +* Autor..........: Fernando D. Bozzo (mailto:fdbozzo@gmail.com) - http://fdbozzo.blogspot.com * Fecha creación.: 04/11/2013 * * LICENCIA: @@ -121,9 +121,6 @@ *--------------------------------------------------------------------------------------------------- LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress, tcOriginalFileName, tcRecompile, tcNoTimestamps -*-- Internacionalización / Internationalization -*-- Fin / End - *-- NO modificar! / Do NOT change! #DEFINE C_CMT_I '*--' #DEFINE C_CMT_F '--*' @@ -6935,6 +6932,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -6958,7 +6956,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base + [] ; + [] ; + [] ; - + [] ; + + [] ; + [] ; + [] @@ -7550,9 +7548,12 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDTEXT ENDIF + *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 + * BaseClass="<>" UniqueID="<>" + * Timestamp="<>" ZOrder="<>" <<>> + *ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 - BaseClass="<>" UniqueID="<>" - Timestamp="<>" ZOrder="<>" <<>> + BaseClass="<>" <<>> ENDTEXT *-- Agrego metainformación para objetos OLE @@ -7890,7 +7891,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ******************************************************************************************************************* - PROCEDURE write_METADATA + PROCEDURE write_CLASSMETADATA LPARAMETERS toRegClass *-- Agrego Metadatos de la clase (Baseclass, Timestamp, Scale, Uniqueid) @@ -7901,7 +7902,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8 <<>> <> Baseclass="<>" - Timestamp="<>" + Timestamp="<>" Scale="<>" Uniqueid="<>" ENDTEXT @@ -7931,6 +7932,30 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8 <> ENDTEXT + + ENDPROC + + + ******************************************************************************************************************* + PROCEDURE write_OBJECTMETADATA + LPARAMETERS toRegObj + + *-- Agrego Metadatos de los objetos (Timestamp, UniqueID) + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 + <<>> + ENDTEXT + + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 + <<>> <> + ObjName="<>" <<>> + UniqueID="<>" + Timestamp="<>" + ENDTEXT + + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8 + <> + ENDTEXT + ENDPROC @@ -8446,10 +8471,11 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg DODEFAULT( @toModulo, @toEx ) TRY - LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen ; - , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) - STORE 0 TO lnCodError, lnLastClass - STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1) + LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ; + , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ; + , laObjs(1,3), I + STORE 0 TO lnCodError, lnLastClass, lnObjCount + STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1), laObjs(1) STORE NULL TO loRegClass, loRegObj WITH THIS AS c_conversor_vcx_a_prg OF 'FOXBIN2PRG.PRG' @@ -8483,6 +8509,8 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg ENDIF IF toFoxBin2Prg.l_ClearUniqueID loRegClass.UNIQUEID = '' + ELSE + loRegClass.UNIQUEID = ALLTRIM(loRegClass.UNIQUEID) ENDIF lcObjName = ALLTRIM(loRegClass.OBJNAME) @@ -8493,7 +8521,40 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg .write_DEFINE_CLASS_COMMENTS( @loRegClass ) - .write_METADATA( @loRegClass ) + .write_CLASSMETADATA( @loRegClass ) + + *------------------------------------------------------------------------------- + *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN + *------------------------------------------------------------------------------- + lnRecno = RECNO() + LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + + SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + lnObjCount = lnObjCount + 1 + DIMENSION laObjs(lnObjCount,3) + SCATTER MEMO NAME loRegObj + laObjs(lnObjCount,1) = loRegObj + laObjs(lnObjCount,2) = RECNO() && ZOrder + laObjs(lnObjCount,3) = lnObjCount && Alphabetic order + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegObj.TIMESTAMP = 0 + ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegObj.UNIQUEID = '' + ELSE + loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID) + ENDIF + + loRegObj = NULL + ENDSCAN + + GOTO RECORD (lnRecno) + ASORT(laObjs, 2, -1, 0, 0) && Orden por ZOrder + + FOR I = 1 TO lnObjCount + .write_OBJECTMETADATA( laObjs(I,1) ) + ENDFOR .write_INCLUDE( @loRegClass ) @@ -8503,24 +8564,29 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg *------------------------------------------------------------------------------- *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN *------------------------------------------------------------------------------- - lnRecno = RECNO() - LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + *lnRecno = RECNO() + *LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - SCATTER MEMO NAME loRegObj + *SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + * SCATTER MEMO NAME loRegObj - IF NOT toFoxBin2Prg.l_UseTimestamps - loRegObj.TIMESTAMP = 0 - ENDIF - IF toFoxBin2Prg.l_ClearUniqueID - loRegObj.UNIQUEID = '' - ENDIF + *IF NOT toFoxBin2Prg.l_UseTimestamps + * loRegObj.TIMESTAMP = 0 + *ENDIF + *IF toFoxBin2Prg.l_ClearUniqueID + * loRegObj.UNIQUEID = '' + *ENDIF - ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios - .write_ADD_OBJECTS_WithProperties( @loRegObj ) - ENDSCAN + *ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios + * .write_ADD_OBJECTS_WithProperties( @loRegObj ) + *ENDSCAN - GOTO RECORD (lnRecno) + *GOTO RECORD (lnRecno) + ASORT(laObjs, 3, -1, 0, 0) && Orden Alfabético (del SCAN original) + + FOR I = 1 TO lnObjCount + .write_ADD_OBJECTS_WithProperties( laObjs(I,1) ) + ENDFOR *-- OBTENGO LOS MÉTODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO @@ -8548,6 +8614,8 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg ENDIF IF toFoxBin2Prg.l_ClearUniqueID loRegObj.UNIQUEID = '' + ELSE + loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID) ENDIF .get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods ) @@ -8619,9 +8687,10 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg #ENDIF TRY - LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen ; - , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) - STORE 0 TO lnCodError, lnLastClass + LOCAL lnCodError, loRegClass, loRegObj, lnMethodCount, laMethods(1), laCode(1), laProtected(1), lnLen, lnObjCount ; + , laPropsAndValues(1), laPropsAndComments(1), lnLastClass, lnRecno, lcMethods, lcObjName, la_NombresObjsOle(1) ; + , laObjs(1,3), I + STORE 0 TO lnCodError, lnLastClass, lnObjCount STORE '' TO laMethods(1), laCode(1), laProtected(1), laPropsAndComments(1) STORE NULL TO loRegClass, loRegObj @@ -8670,6 +8739,15 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg *loRegClass = NULL SCATTER MEMO NAME loRegClass + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegClass.TIMESTAMP = 0 + ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegClass.UNIQUEID = '' + ELSE + loRegClass.UNIQUEID = ALLTRIM(loRegClass.UNIQUEID) + ENDIF + lcObjName = ALLTRIM(loRegClass.OBJNAME) .write_ENDDEFINE_SiCorresponde( lnLastClass ) @@ -8678,7 +8756,40 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg .write_DEFINE_CLASS_COMMENTS( @loRegClass ) - .write_METADATA( @loRegClass ) + .write_CLASSMETADATA( @loRegClass ) + + *------------------------------------------------------------------------------- + *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN + *------------------------------------------------------------------------------- + lnRecno = RECNO() + LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + + SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + lnObjCount = lnObjCount + 1 + DIMENSION laObjs(lnObjCount,3) + SCATTER MEMO NAME loRegObj + laObjs(lnObjCount,1) = loRegObj + laObjs(lnObjCount,2) = RECNO() && ZOrder + laObjs(lnObjCount,3) = lnObjCount && Alphabetic order + + IF NOT toFoxBin2Prg.l_UseTimestamps + loRegObj.TIMESTAMP = 0 + ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegObj.UNIQUEID = '' + ELSE + loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID) + ENDIF + + loRegObj = NULL + ENDSCAN + + GOTO RECORD (lnRecno) + ASORT(laObjs, 2, -1, 0, 0) && Orden por ZOrder + + FOR I = 1 TO lnObjCount + .write_OBJECTMETADATA( laObjs(I,1) ) + ENDFOR .write_INCLUDE( @loRegClass ) @@ -8688,24 +8799,29 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg *------------------------------------------------------------------------------- *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN *------------------------------------------------------------------------------- - lnRecno = RECNO() - LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + *lnRecno = RECNO() + *LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - SCATTER MEMO NAME loRegObj + *SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName + * SCATTER MEMO NAME loRegObj - IF NOT toFoxBin2Prg.l_UseTimestamps - loRegObj.TIMESTAMP = 0 - ENDIF - IF toFoxBin2Prg.l_ClearUniqueID - loRegObj.UNIQUEID = '' - ENDIF + * IF NOT toFoxBin2Prg.l_UseTimestamps + * loRegObj.TIMESTAMP = 0 + * ENDIF + * IF toFoxBin2Prg.l_ClearUniqueID + * loRegObj.UNIQUEID = '' + * ENDIF - ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios - .write_ADD_OBJECTS_WithProperties( @loRegObj ) - ENDSCAN + * ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios + * .write_ADD_OBJECTS_WithProperties( @loRegObj ) + *ENDSCAN - GOTO RECORD (lnRecno) + *GOTO RECORD (lnRecno) + ASORT(laObjs, 3, -1, 0, 0) && Orden Alfabético (del SCAN original) + + FOR I = 1 TO lnObjCount + .write_ADD_OBJECTS_WithProperties( laObjs(I,1) ) + ENDFOR *-- OBTENGO LOS MÉTODOS DE LA CLASE PARA POSTERIOR TRATAMIENTO @@ -8735,6 +8851,8 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg ENDIF IF toFoxBin2Prg.l_ClearUniqueID loRegObj.UNIQUEID = '' + ELSE + loRegObj.UNIQUEID = ALLTRIM(loRegObj.UNIQUEID) ENDIF .get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods ) From 46d8e9ee5b4a9b83e9bd26eb2f5d68f692b8d616 Mon Sep 17 00:00:00 2001 From: fernando Date: Sat, 22 Feb 2014 00:32:51 +0100 Subject: [PATCH 3/5] =?UTF-8?q?Changeset:=20171=20-=20Generaci=C3=B3n=20de?= =?UTF-8?q?l=20BINARIO=20desde=20el=20nuevo=20header=20metadata=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.pj2 | 6 +- foxbin2prg.pjt | Bin 356224 -> 359296 bytes foxbin2prg.pjx | Bin 1583 -> 1583 bytes foxbin2prg.prg | 194 ++++++++++++++++++++++++++----------------------- 4 files changed, 108 insertions(+), 92 deletions(-) diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index f8338fa..a12d939 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 261" +_Revision = " 269" _LanguageID = "1034" _AutoIncrement = "1" * @@ -50,8 +50,8 @@ MODIFY PROJECT 'foxbin2prg.pjx' NOWAIT NOSHOW NOPROJECTHOOK loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES - .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" /> - .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145939245" ID="1130644423" ObjRev="544" /> + .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="1131721714" ObjRev="0" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index db66c09b9ee56bec00dbe597a70812ce4a70d8f3..40a7272f8faf74b0f1577cda8b2ce5e70704e75d 100644 GIT binary patch delta 21308 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 delta 18779 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 diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index d554483303d60ccd05151b8f22f1326328b3d6ab..d85b07542fbb4783b5cf06e111225ace108c77a8 100644 GIT binary patch delta 75 zcmZ3_vz~{=fR9ORBg=Lcb~6(Ta|=Vm$%k0}>Vnun4g(apg(xVvDFA_~i3v!^8HlF< Pv4XLgxsk=>H>}P8T00KB delta 75 zcmZ3_vz~{=fRBlHBg=Lcc2i4ZOJj5M$%k0}>VnutCZ-Hf;1;5w;HCfsrY0sJA!i_- R1jGu4Cgv7Kli#p90{~d84zU0L diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 15cdd0a..8336652 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -115,7 +115,7 @@ * se hace desde el directorio del archivo, con lo que las referencias relativas pueden * generar errores de compilación, típicamente los #include. * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar -* tcNoTimestamps (v? IN ) '1' para mantener los timestamps vacíos. Útil para minimizar diferencias en Diff/Merge por este motivo. +* tcNoTimestamps ( ) Sin uso. Utilizar el archivo de configuración. * * Ej: DO FOXBIN2PRG.PRG WITH "C:\DESA\INTEGRACION\LIBRERIA.VCX" *--------------------------------------------------------------------------------------------------- @@ -126,9 +126,10 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb #DEFINE C_CMT_F '--*' #DEFINE C_CLASSDATA_I '*< CLASSDATA:' #DEFINE C_CLASSDATA_F '/>' +#DEFINE C_LEN_CLASSDATA_I LEN(C_CLASSDATA_I) #DEFINE C_OBJECTDATA_I '*< OBJECTDATA:' #DEFINE C_OBJECTDATA_F '/>' -#DEFINE C_LEN_CLASSDATA_I LEN(C_CLASSDATA_I) +#DEFINE C_LEN_OBJECTDATA_I LEN(C_OBJECTDATA_I) #DEFINE C_OLE_I '*< OLE:' #DEFINE C_OLE_F '/>' #DEFINE C_LEN_OLE_I LEN(C_OLE_I) @@ -784,7 +785,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .l_ShowProgress = NOT (TRANSFORM(tcDontShowProgress)=='1') .l_ShowErrors = NOT (TRANSFORM(tcDontShowErrors) == '1') .l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) - .l_UseTimestamps = (TRANSFORM(tcNoTimestamps) == '0') + .l_UseTimestamps = (TRANSFORM(tcNoTimestamps) == '1') .l_Debug = (TRANSFORM(tcDebug)=='1' OR FILE(FORCEEXT(.c_Foxbin2prg_FullPath,'LOG'))) .n_ExtraBackupLevels = INT(VAL(TRANSFORM(tcExtraBackupLevels))) @@ -822,7 +823,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM * se hace desde el directorio del archivo, con lo que las referencias relativas pueden * generar errores de compilación, típicamente los #include. * NOTA: Si en vez de '1' se indica un Path (p.ej, el del proyecto, se usará como base para recompilar - * tcNoTimestamps (v? IN ) Indica si se deben vacar ('1') o no ['0'] los timestamps de registro + * tcNoTimestamps ( ) Sin uso. Utilizar el archivo de configuración. * tcBackupLevels (v? IN ) Indica la cantidad de niveles de backup a realizar (por defecto '1') *-------------------------------------------------------------------------------------------------------------- LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ; @@ -854,7 +855,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + C_TAB + 'tcNoTimestamps: ' + TRANSFORM(tcNoTimestamps) ) tcRecompile = EVL(tcRecompile,'1') - tcNoTimestamps = EVL(tcNoTimestamps,'0') + tcNoTimestamps = '0' &&EVL(tcNoTimestamps,'0') IF _VFP.STARTMODE > 0 SET ESCAPE OFF @@ -2642,7 +2643,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base + [] ; + [] ; + [] ; - + [] ; + + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -2751,9 +2753,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base LPARAMETERS tcLineWithMetadata, taPropsAndValues, tnPropsAndValues_Count, tcLeftTag, tcRightTag EXTERNAL ARRAY taPropsAndValues - LOCAL lcMetadatos, I, X, lnEqualSigns, lcNextVar, lcStr, lcVirtualMeta, lnPos1, lnPos2, lnLastPos, lnCantComillas + LOCAL lcMetadatos, I, lnEqualSigns, lcNextVar, lcStr, lcVirtualMeta, lnPos1, lnPos2, lnLastPos, lnCantComillas STORE '' TO lcVirtualMeta - STORE 0 TO lnPos1, lnPos2, lnLastPos, tnPropsAndValues_Count, I, X + STORE 0 TO lnPos1, lnPos2, lnLastPos, tnPropsAndValues_Count, I lcMetadatos = ALLTRIM( STREXTRACT( tcLineWithMetadata, tcLeftTag, tcRightTag, 1, 1) ) lnCantComillas = OCCURS( '"', lcMetadatos ) @@ -2773,7 +2775,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base * TENER EN CUENTA AL GENERAR EL TEXTO O AL MODIFICARLO MANUALMENTE AL MERGEAR *------------------------------------------------------------------------------------- FOR I = 1 TO lnCantComillas STEP 2 - X = X + 1 + tnPropsAndValues_Count = tnPropsAndValues_Count + 1 * Type="V" Cpid="1252" * ^ ^ => Posiciones del par de comillas dobles @@ -2782,8 +2784,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base * Type="V" Cpid="1252" * ^ ^ ^ => LastPos, lnPos1 y lnPos2 - taPropsAndValues(X,1) = ALLTRIM( GETWORDNUM( SUBSTR( lcMetadatos, lnLastPos, lnPos1 - lnLastPos ), 1, '=' ) ) - taPropsAndValues(X,2) = SUBSTR( lcMetadatos, lnPos1 + 1, lnPos2 - lnPos1 - 1 ) + taPropsAndValues(tnPropsAndValues_Count,1) = ALLTRIM( GETWORDNUM( SUBSTR( lcMetadatos, lnLastPos, lnPos1 - lnLastPos ), 1, '=' ) ) + taPropsAndValues(tnPropsAndValues_Count,2) = SUBSTR( lcMetadatos, lnPos1 + 1, lnPos2 - lnPos1 - 1 ) lnLastPos = lnPos2 + 1 ENDFOR @@ -3836,7 +3838,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base IF LEFT( tcLine, 11 ) == 'ADD OBJECT ' *-- Estructura a reconocer: ADD OBJECT 'frm_a.Check1' AS check [WITH] llBloqueEncontrado = .T. - LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, Z, lcProp, lcValue + LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, Z, lcProp, lcValue, lcNombre, lcObjName tcLine = CHRTRAN( tcLine, ['], ["] ) IF EMPTY(toClase._Fin_Cab) @@ -3844,22 +3846,42 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base toClase._Ini_Cuerpo = I ENDIF - toObjeto = NULL - toObjeto = CREATEOBJECT('CL_OBJETO') - toClase.add_Object( toObjeto ) - toObjeto._Nombre = ALLTRIM( CHRTRAN( STREXTRACT(tcLine, 'ADD OBJECT ', ' AS ', 1, 1), ['"], [] ) ) + toObjeto = NULL + lcNombre = ALLTRIM( CHRTRAN( STREXTRACT(tcLine, 'ADD OBJECT ', ' AS ', 1, 1), ['"], [] ) ) + lcObjName = JUSTEXT( '.' + lcNombre ) + + IF toClase.l_ObjectMetadataInHeader + FOR Z = 1 TO toClase._AddObject_Count + IF LOWER(toClase._AddObjects(Z)._Nombre) == LOWER(lcNombre) THEN + toObjeto = toClase._AddObjects(Z) + EXIT + ENDIF + ENDFOR + ENDIF + + IF ISNULL(toObjeto) + toObjeto = CREATEOBJECT('CL_OBJETO') + *-- Luego se reasigna el ZOrder, pero si no lo hace, se pone último como si se acabara de agregar. + *-- Puede pasar si se agrega manualmente al TX2 y se olvida agregar la metadata OBJECTDATA. + toObjeto._ZOrder = 9999 + toObjeto._Nombre = lcNombre + ENDIF + + toObjeto._ObjName = lcObjName IF '.' $ toObjeto._Nombre - toObjeto._ObjName = JUSTEXT( toObjeto._Nombre ) toObjeto._Parent = toClase._ObjName + '.' + JUSTSTEM( toObjeto._Nombre ) ELSE - toObjeto._ObjName = toObjeto._Nombre toObjeto._Parent = toClase._ObjName ENDIF toObjeto._Nombre = toObjeto._Parent + '.' + toObjeto._ObjName toObjeto._Class = ALLTRIM( STREXTRACT(tcLine + ' WITH', ' AS ', ' WITH', 1, 1) ) + IF NOT toClase.l_ObjectMetadataInHeader + toClase.add_Object( toObjeto ) + ENDIF + *-- Propiedades del ADD OBJECT WITH THIS @@ -3874,10 +3896,14 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base toObjeto._ClassLib = .get_ValueByName_FromListNamesWithValues( 'ClassLib', 'C', @laPropsAndValues ) toObjeto._BaseClass = .get_ValueByName_FromListNamesWithValues( 'BaseClass', 'C', @laPropsAndValues ) - toObjeto._UniqueID = .get_ValueByName_FromListNamesWithValues( 'UniqueID', 'C', @laPropsAndValues ) + + IF NOT toClase.l_ObjectMetadataInHeader + toObjeto._UniqueID = .get_ValueByName_FromListNamesWithValues( 'UniqueID', 'C', @laPropsAndValues ) + toObjeto._TimeStamp = INT( .RowTimeStamp( .get_ValueByName_FromListNamesWithValues( 'TimeStamp', 'T', @laPropsAndValues ) ) ) + toObjeto._ZOrder = .get_ValueByName_FromListNamesWithValues( 'ZOrder', 'I', @laPropsAndValues ) + ENDIF + toObjeto._Ole2 = .get_ValueByName_FromListNamesWithValues( 'OLEObject', 'C', @laPropsAndValues ) - toObjeto._ZOrder = .get_ValueByName_FromListNamesWithValues( 'ZOrder', 'I', @laPropsAndValues ) - toObjeto._TimeStamp = INT( .RowTimeStamp( .get_ValueByName_FromListNamesWithValues( 'TimeStamp', 'T', @laPropsAndValues ) ) ) toObjeto._Ole = STRCONV( .get_ValueByName_FromListNamesWithValues( 'Value', 'C', @laPropsAndValues ), 14 ) IF NOT EMPTY( toObjeto._Ole2 ) && Le agrego "OLEObject = " delante @@ -3895,11 +3921,9 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ENDIF IF RIGHT(tcLine, 3) == ', ;' && VALOR INTERMEDIO CON ", ;" - *toObjeto.add_Property( .desnormalizarAsignacion( LEFT(tcLine, LEN(tcLine) - 3) ) ) .get_SeparatedPropAndValue( LEFT(tcLine, LEN(tcLine) - 3), @lcProp, @lcValue ) toObjeto.add_Property( @lcProp, @lcValue ) ELSE && VALOR FINAL SIN ", ;" (JUSTO ANTES DEL ) - *toObjeto.add_Property( .desnormalizarAsignacion( RTRIM(tcLine) ) ) .get_SeparatedPropAndValue( RTRIM(tcLine), @lcProp, @lcValue ) toObjeto.add_Property( @lcProp, @lcValue ) ENDIF @@ -4035,8 +4059,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base TRY llBloqueEncontrado = .T. LOCAL Z, lcProp, lcValue, loEx AS EXCEPTION ; - , llMETADATA_Completed, llPROTECTED_Completed, llHIDDEN_Completed, llDEFINED_PAM_Completed ; - , llINCLUDE_Completed, llCLASS_PROPERTY_Completed ; + , llCLASSMETADATA_Completed, llPROTECTED_Completed, llHIDDEN_Completed, llDEFINED_PAM_Completed ; + , llINCLUDE_Completed, llCLASS_PROPERTY_Completed, llOBJECTMETADATA_Completed ; , loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG' STORE '' TO tcProcedureAbierto @@ -4079,7 +4103,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base llPROTECTED_Completed = .T. llHIDDEN_Completed = .T. llINCLUDE_Completed = .T. - llMETADATA_Completed = .T. + llCLASSMETADATA_Completed = .T. + llOBJECTMETADATA_Completed = .T. llDEFINED_PAM_Completed = .T. @@ -4096,8 +4121,12 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base llINCLUDE_Completed = .T. - CASE NOT llMETADATA_Completed AND .analizarBloque_METADATA( @toClase, @tcLine ) - llMETADATA_Completed = .T. + CASE NOT llCLASSMETADATA_Completed AND .analizarBloque_CLASSMETADATA( @toClase, @tcLine ) + llCLASSMETADATA_Completed = .T. + + + CASE NOT llOBJECTMETADATA_Completed AND .analizarBloque_OBJECTMETADATA( @toClase, @tcLine ) + *llOBJECTMETADATA_Completed = .T. CASE NOT llDEFINED_PAM_Completed AND .analizarBloque_DEFINED_PAM( @toClase, @tcLine, @taCodeLines, tnCodeLines, @I ) @@ -4109,7 +4138,8 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base llPROTECTED_Completed = .T. llHIDDEN_Completed = .T. llINCLUDE_Completed = .T. - llMETADATA_Completed = .T. + llCLASSMETADATA_Completed = .T. + llOBJECTMETADATA_Completed = .T. llDEFINED_PAM_Completed = .T. @@ -4123,7 +4153,6 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- NOTA: Las propiedades se agregan tal cual, incluso aunque estén separadas en *-- varias líneas (memberdata y fb2p_value), ya que luego se ensamblan en classProps2Memo(). * - *toClase.add_Property( THIS.desnormalizarAsignacion( RTRIM(tcLine) ), RTRIM(tc_Comentario) ) .get_SeparatedPropAndValue( RTRIM(tcLine), @lcProp, @lcValue, @toClase, @taCodeLines, tnCodeLines, @I ) toClase.add_Property( @lcProp, @lcValue, RTRIM(tc_Comentario) ) @@ -4245,7 +4274,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ******************************************************************************************************************* - PROCEDURE analizarBloque_METADATA + PROCEDURE analizarBloque_CLASSMETADATA LPARAMETERS toClase, tcLine #IF .F. @@ -4280,6 +4309,36 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base ENDPROC + PROCEDURE analizarBloque_OBJECTMETADATA + LPARAMETERS toClase, tcLine + + #IF .F. + LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG' + #ENDIF + + LOCAL llBloqueEncontrado + + IF LEFT(tcLine, C_LEN_OBJECTDATA_I) == C_OBJECTDATA_I && METADATA del ADD OBJECT + *< OBJECTDATA: ObjName="txtValor" Timestamp="2013/11/19 11:51:04" Uniqueid="_3WF0VSTN1" /> + LOCAL laPropsAndValues(1,2), lnPropsAndValues_Count, loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG' + llBloqueEncontrado = .T. + toClase.l_ObjectMetadataInHeader = .T. + + loObjeto = CREATEOBJECT('CL_OBJETO') + toClase.add_Object( loObjeto ) + + WITH THIS + .get_ListNamesWithValuesFrom_InLine_MetadataTag( @tcLine, @laPropsAndValues, @lnPropsAndValues_Count, C_OBJECTDATA_I, C_OBJECTDATA_F ) + loObjeto._Nombre = .get_ValueByName_FromListNamesWithValues( 'ObjPath', 'C', @laPropsAndValues ) + loObjeto._TimeStamp = INT( .RowTimeStamp( .get_ValueByName_FromListNamesWithValues( 'TimeStamp', 'T', @laPropsAndValues ) ) ) + loObjeto._UniqueID = .get_ValueByName_FromListNamesWithValues( 'UniqueID', 'C', @laPropsAndValues ) + ENDWITH && THIS + ENDIF + + RETURN llBloqueEncontrado + ENDPROC + + ******************************************************************************************************************* PROCEDURE analizarBloque_OLE_DEF LPARAMETERS toModulo, tcLine, taCodeLines, I, tnCodeLines, tcProcedureAbierto @@ -7007,12 +7066,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDIF *-- Genero el método SIN indentar, ya que se hace luego - *tcMethods2 = tcMethods - *TEXT TO tcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - * <<'PROCEDURE'>> <> - * <<.IndentarMemo( taCode(taMethods(I,2)) )>> - * <<'ENDPROC'>> - *ENDTEXT *-- Sustituyo el TEXT/ENDTEXT aquí porque a veces quita espacios de la derecha, y eso es peligroso tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + tcMethodName tcMethods = tcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)) ) @@ -7516,7 +7569,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base *-- Defino los objetos a cargar THIS.get_PropsAndValuesFrom_PROPERTIES( toRegObj.PROPERTIES, 1, @laPropsAndValues, @lnPropsAndValues_Count, @lcMemo ) - *lcMemo = THIS.set_MultilineMemoWithAddObjectProperties( lcMemo, C_TAB + C_TAB, .T. ) lcMemo = THIS.set_MultilineMemoWithAddObjectProperties( @laPropsAndValues, @lnPropsAndValues_Count, C_TAB + C_TAB, .T. ) IF '.' $ toRegObj.PARENT @@ -7548,10 +7600,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDTEXT ENDIF - *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 - * BaseClass="<>" UniqueID="<>" - * Timestamp="<>" ZOrder="<>" <<>> - *ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 BaseClass="<>" <<>> ENDTEXT @@ -7600,12 +7648,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base FOR I = 1 TO lnMethodCount *-- Genero los métodos indentados - *TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - * <<>> <>PROCEDURE <> - * <<.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )>> - * <<>> ENDPROC - - *ENDTEXT *-- Sustituyo el TEXT/ENDTEXT aquí porque a veces quita espacios de la derecha, y eso es peligroso lcMethods = lcMethods + CR_LF + C_TAB + laMethods(I,3) + C_PROCEDURE + ' ' + laMethods(I,1) lcMethods = lcMethods + CR_LF + .IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) ) @@ -7667,21 +7709,12 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDIF *-- Código del método - *TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - * <<.IndentarMemo( taCode(taMethods(I,2)), CHR(9) + CHR(9) )>> - * <<>> ENDPROC - - *ENDTEXT *-- Sustituyo el TEXT/ENDTEXT aquí porque a veces quita espacios de la derecha, y eso es peligroso lcMethods = lcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)), C_TAB + C_TAB ) lcMethods = lcMethods + CR_LF + C_TAB + 'ENDPROC' lcMethods = lcMethods + CR_LF ENDFOR - *TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - * <> - *ENDTEXT - ENDWITH && THIS C_FB2PRG_CODE = C_FB2PRG_CODE + C_TAB + lcMethods &&+ CR_LF @@ -7939,15 +7972,24 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ******************************************************************************************************************* PROCEDURE write_OBJECTMETADATA LPARAMETERS toRegObj + LOCAL lcNombre *-- Agrego Metadatos de los objetos (Timestamp, UniqueID) TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <<>> ENDTEXT + IF '.' $ toRegObj.PARENT + *-- Este caso: clase.objeto.objeto ==> se quita clase + lcNombre = SUBSTR(toRegObj.Parent, AT('.', toRegObj.Parent)+1) + '.' + toRegObj.objName + ELSE + *-- Este caso: objeto + lcNombre = toRegObj.objName + ENDIF + TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 <<>> <> - ObjName="<>" <<>> + ObjPath="<>" UniqueID="<>" Timestamp="<>" ENDTEXT @@ -8702,9 +8744,6 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg INDEX ON PADR(LOWER(PLATFORM + IIF(EMPTY(PARENT),'',ALLTRIM(PARENT)+'.')+OBJNAME),240) TAG PARENT_OBJ OF TABLABIN ADDITIVE SET ORDER TO 0 IN TABLABIN - *toModulo = NULL - *toModulo = CREATEOBJECT('CL_MODULO') - C_FB2PRG_CODE = C_FB2PRG_CODE + toFoxBin2Prg.get_PROGRAM_HEADER() .get_NombresObjetosOLEPublic( @la_NombresObjsOle ) @@ -8736,7 +8775,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg AND (EMPTY(TABLABIN.PARENT) ; AND (TABLABIN.BASECLASS == 'dataenvironment' OR TABLABIN.BASECLASS == 'form' OR TABLABIN.BASECLASS == 'formset' ) ) - *loRegClass = NULL + loRegClass = NULL SCATTER MEMO NAME loRegClass IF NOT toFoxBin2Prg.l_UseTimestamps @@ -8770,7 +8809,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg SCATTER MEMO NAME loRegObj laObjs(lnObjCount,1) = loRegObj laObjs(lnObjCount,2) = RECNO() && ZOrder - laObjs(lnObjCount,3) = lnObjCount && Alphabetic order + laObjs(lnObjCount,3) = lnObjCount && Orden alfabético IF NOT toFoxBin2Prg.l_UseTimestamps loRegObj.TIMESTAMP = 0 @@ -8796,28 +8835,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg .write_CLASS_PROPERTIES( @loRegClass, @laPropsAndValues, @laPropsAndComments, @laProtected ) - *------------------------------------------------------------------------------- - *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN - *------------------------------------------------------------------------------- - *lnRecno = RECNO() - *LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - - *SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - * SCATTER MEMO NAME loRegObj - - * IF NOT toFoxBin2Prg.l_UseTimestamps - * loRegObj.TIMESTAMP = 0 - * ENDIF - * IF toFoxBin2Prg.l_ClearUniqueID - * loRegObj.UNIQUEID = '' - * ENDIF - - * ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios - * .write_ADD_OBJECTS_WithProperties( @loRegObj ) - *ENDSCAN - - *GOTO RECORD (lnRecno) - ASORT(laObjs, 3, -1, 0, 0) && Orden Alfabético (del SCAN original) + ASORT(laObjs, 3, -1, 0, 0) && Orden Alfabético de objetos (del SCAN original) FOR I = 1 TO lnObjCount .write_ADD_OBJECTS_WithProperties( laObjs(I,1) ) @@ -10263,6 +10281,7 @@ DEFINE CLASS CL_CLASE AS CL_CUS_BASE + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -10314,6 +10333,7 @@ DEFINE CLASS CL_CLASE AS CL_CUS_BASE DIMENSION _Props[1,2], _AddObjects[1], _Procedures[1] + l_ObjectMetadataInHeader = .F. _Nombre = '' _ObjName = '' _Parent = '' @@ -10831,7 +10851,6 @@ DEFINE CLASS CL_DBC_COL_BASE AS CL_COL_BASE + [] ; + [] - *PROTECTED __ObjectID, __ObjectType __ObjectID = 0 _Name = '' @@ -11584,7 +11603,6 @@ DEFINE CLASS CL_DBC_BASE AS CL_CUS_BASE LOCAL lcBinRecord, lnLen, lcDataType lcBinRecord = '' - *lcDataType = IIF( tnPropertyID = 2, 'B', VARTYPE(teData) ) lcDataType = THIS.getDBCPropertyValueTypeByPropertyID( tnPropertyID ) DO CASE @@ -16024,11 +16042,9 @@ DEFINE CLASS CL_MENU AS CL_MENU_COL_BASE DO CASE CASE loHeader.ObjType = 1 && Menu Bar (Sistema) - *lcText = lcText + CR_LF + 'DEFINE MENU _MSYSMENU BAR' lcText = lcText + CR_LF + 'DEFINE MENU ' + loBarPop.NAME + ' BAR' CASE loHeader.ObjType = 5 && Menu Bar (On top) - *lcText = lcText + CR_LF + 'DEFINE MENU _ONTOP BAR' lcText = lcText + CR_LF + 'DEFINE MENU ' + loBarPop.NAME + ' BAR' CASE loHeader.ObjType = 4 && Shortcut From f378b64024b13fcaab20843ab3af156eead6cef4 Mon Sep 17 00:00:00 2001 From: fernando Date: Sat, 22 Feb 2014 01:17:07 +0100 Subject: [PATCH 4/5] =?UTF-8?q?Changeset:=20172=20-=20Arreglo=20de=20casos?= =?UTF-8?q?=20de=20prueba=20-=20Arreglo=20de=20bug=20introducido=20durante?= =?UTF-8?q?=20el=20desarrollo=20(se=20acumulaban=20los=20objetos=20de=20to?= =?UTF-8?q?das=20las=20clases)=20-=20Limpieza=20de=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ft__foxbin2prg__c_conversor_prg_a_dbf.prg | 12 +++++++++ TESTS/ut__foxbin2prg.prg | 8 ++++++ foxbin2prg.pj2 | 2 +- foxbin2prg.pjt | Bin 359296 -> 359296 bytes foxbin2prg.pjx | Bin 1583 -> 1583 bytes foxbin2prg.prg | 24 ++---------------- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/TESTS/ft__foxbin2prg__c_conversor_prg_a_dbf.prg b/TESTS/ft__foxbin2prg__c_conversor_prg_a_dbf.prg index 1cc0ea2..7caff96 100644 --- a/TESTS/ft__foxbin2prg__c_conversor_prg_a_dbf.prg +++ b/TESTS/ft__foxbin2prg__c_conversor_prg_a_dbf.prg @@ -107,6 +107,9 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.DBF_Conversion_Support = 2 + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( lc_File ) @@ -176,6 +179,9 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.DBF_Conversion_Support = 2 + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( lc_File ) @@ -246,6 +252,9 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.DBF_Conversion_Support = 2 + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) @@ -316,6 +325,9 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.DBF_Conversion_Support = 2 + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( FORCEEXT(lc_File,'*') ) diff --git a/TESTS/ut__foxbin2prg.prg b/TESTS/ut__foxbin2prg.prg index 302baec..2b93dc3 100644 --- a/TESTS/ut__foxbin2prg.prg +++ b/TESTS/ut__foxbin2prg.prg @@ -291,6 +291,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) @@ -365,6 +367,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) @@ -437,6 +441,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) @@ -684,6 +690,8 @@ DEFINE CLASS ut__foxbin2prg AS FxuTestCase OF FxuTestCase.prg lc_InputFile = FORCEPATH( lc_File, 'TESTS\DATOS_READONLY' ) lc_OutputFile = FORCEPATH( lc_File, 'TESTS\DATOS_TEST' ) lcTipoBinario = UPPER( JUSTEXT( lc_OutputFile ) ) + loCnv.l_UseTimestamps = .T. + loCnv.l_ClearUniqueID = .F. oFXU_LIB.copiarArchivosParaTest( FORCEEXT( lc_File, LEFT( JUSTEXT(lc_File),2 ) + '?' ) ) diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index a12d939..30a3909 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 269" +_Revision = " 270" _LanguageID = "1034" _AutoIncrement = "1" * diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 40a7272f8faf74b0f1577cda8b2ce5e70704e75d..b68d64f19bc4af0a4c991ace4f60995b7d7d3ad5 100644 GIT binary patch delta 7013 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 delta 6909 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 diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 8336652..ffc6e1f 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -8568,6 +8568,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg *------------------------------------------------------------------------------- *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN *------------------------------------------------------------------------------- + lnObjCount = 0 lnRecno = RECNO() LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName @@ -8602,28 +8603,6 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg .write_CLASS_PROPERTIES( @loRegClass, @laPropsAndValues, @laPropsAndComments, @laProtected ) - - *------------------------------------------------------------------------------- - *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN - *------------------------------------------------------------------------------- - *lnRecno = RECNO() - *LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - - *SCAN REST WHILE TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName - * SCATTER MEMO NAME loRegObj - - *IF NOT toFoxBin2Prg.l_UseTimestamps - * loRegObj.TIMESTAMP = 0 - *ENDIF - *IF toFoxBin2Prg.l_ClearUniqueID - * loRegObj.UNIQUEID = '' - *ENDIF - - *ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios - * .write_ADD_OBJECTS_WithProperties( @loRegObj ) - *ENDSCAN - - *GOTO RECORD (lnRecno) ASORT(laObjs, 3, -1, 0, 0) && Orden Alfabético (del SCAN original) FOR I = 1 TO lnObjCount @@ -8800,6 +8779,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg *------------------------------------------------------------------------------- *-- RECORRO LOS OBJETOS DENTRO DE LA CLASE ACTUAL PARA EXPORTAR SU DEFINICIÓN *------------------------------------------------------------------------------- + lnObjCount = 0 lnRecno = RECNO() LOCATE FOR TABLABIN.PLATFORM = "WINDOWS" AND ALLTRIM(GETWORDNUM(TABLABIN.PARENT, 1, '.')) == lcObjName From 54cb0d4a9bd03364fc36978af3029e20c2885455 Mon Sep 17 00:00:00 2001 From: fernando Date: Sun, 23 Feb 2014 16:42:45 +0100 Subject: [PATCH 5/5] =?UTF-8?q?Changeset:=20173=20fernando=20-=2023/02/201?= =?UTF-8?q?4=2016:41:18:=20-=20Mejora=20est=C3=A9tica=20presentaci=C3=B3n?= =?UTF-8?q?=20TX2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.pj2 | 2 +- foxbin2prg.pjt | Bin 359296 -> 359744 bytes foxbin2prg.pjx | Bin 1583 -> 1583 bytes foxbin2prg.prg | 36 ++++++++++++++++++++++++++---------- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 30a3909..1b87742 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 270" +_Revision = " 277" _LanguageID = "1034" _AutoIncrement = "1" * diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index b68d64f19bc4af0a4c991ace4f60995b7d7d3ad5..30551859772290e684450947cd12d19d96980b77 100644 GIT binary patch delta 8009 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 YFyTEnars3y-l+XCT>Iz0#3A&50Ff}u`v3p{ delta 7599 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 diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 94fefc1215201dfef367e24955f39fb563b87517..d90ca09874ef5fd3da1f9c370c22d4dd9cf25ee9 100644 GIT binary patch delta 29 hcmZ3_vz}+e9u_uJLlXm2i^+#r{y~`LlaH}x0sxS|34Q> <> ENDTEXT + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + ENDIF ENDPROC @@ -7965,7 +7967,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8 <> ENDTEXT - + + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + ENDPROC @@ -7981,10 +7985,10 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base IF '.' $ toRegObj.PARENT *-- Este caso: clase.objeto.objeto ==> se quita clase - lcNombre = SUBSTR(toRegObj.Parent, AT('.', toRegObj.Parent)+1) + '.' + toRegObj.objName + lcNombre = SUBSTR(toRegObj.PARENT, AT('.', toRegObj.PARENT)+1) + '.' + toRegObj.OBJNAME ELSE *-- Este caso: objeto - lcNombre = toRegObj.objName + lcNombre = toRegObj.OBJNAME ENDIF TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2+4+8 @@ -7997,7 +8001,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2+4+8 <> ENDTEXT - + ENDPROC @@ -8595,9 +8599,15 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg GOTO RECORD (lnRecno) ASORT(laObjs, 2, -1, 0, 0) && Orden por ZOrder - FOR I = 1 TO lnObjCount - .write_OBJECTMETADATA( laObjs(I,1) ) - ENDFOR + IF lnObjCount > 0 + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + ' *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder ' + + FOR I = 1 TO lnObjCount + .write_OBJECTMETADATA( laObjs(I,1) ) + ENDFOR + + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + ENDIF .write_INCLUDE( @loRegClass ) @@ -8806,9 +8816,15 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg GOTO RECORD (lnRecno) ASORT(laObjs, 2, -1, 0, 0) && Orden por ZOrder - FOR I = 1 TO lnObjCount - .write_OBJECTMETADATA( laObjs(I,1) ) - ENDFOR + IF lnObjCount > 0 + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + ' *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder ' + + FOR I = 1 TO lnObjCount + .write_OBJECTMETADATA( laObjs(I,1) ) + ENDFOR + + C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + ENDIF .write_INCLUDE( @loRegClass )