From f61fbfa3e2c35bf404523fe4f67f553367a3c0fd Mon Sep 17 00:00:00 2001 From: fernando Date: Fri, 21 Feb 2014 01:08:04 +0100 Subject: [PATCH] =?UTF-8?q?Changeset:=20170=20-=20Generaci=C3=B3n=20de=20V?= =?UTF-8?q?C2/SC2=20con=20nuevo=20header=20metadata=20=20para?= =?UTF-8?q?=20centralizar=20uniqueid,=20timestamp=20y=20ZOrder=20y=20reduc?= =?UTF-8?q?ir=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 )